我应该创建新的列表列表还是一个函数

时间:2017-07-31 17:41:33

标签: python list pandas dataframe

我是Python和Pandas的新手。当我在一个DataFrame中创建多个list时,最好是在每个步骤中添加不同的列表并附加或仅在一个大函数中创建它们吗?

例如,我有一个DataFrame列表,它们具有相同的列,但值和行号不同:

df_list = [[df1], [df2], [df3], [df5]]

现在我想用列的值来平均每个数据帧:

df_list_1 = []
for df in df_list:
    new_df = df.groupby('col1').mean()
    df_list_1.append(new_df)

接下来将在df的每个df_list_1中进行更多计算。我应该在计算的每一步中创建另一个df_list_2吗?在python中执行此操作的最佳和最快方法是什么?

1 个答案:

答案 0 :(得分:0)

数据输入:

df1 = pd.DataFrame([[1, 1.0, 2.3,0.2,0.53], [2, 3.35, 2.0,0.2,0.65], [2,3.4,
               2.0,0.25,0.55], [3,3.4,2.0,0.25,0.55]],
               columns=["ID", "NaX", "OO","OO1","OO2"])\
               .set_index('Sample_ID')#sampleData

DF=pd.concat([df1,df1,df1,df1],axis=0,keys=['df1','df2','df3','‌​df4'])
NEW_DF=DF.groupby([DF.index.get_level_values(0),'NaX']).mean()
NEW_DF
Out[100]: 
          OO    OO1   OO2
    NaX                  
df1 1.00  2.3  0.20  0.53
    3.35  2.0  0.20  0.65
    3.40  2.0  0.25  0.55
df2 1.00  2.3  0.20  0.53
    3.35  2.0  0.20  0.65
    3.40  2.0  0.25  0.55
df3 1.00  2.3  0.20  0.53
    3.35  2.0  0.20  0.65
    3.40  2.0  0.25  0.55
df4 1.00  2.3  0.20  0.53
    3.35  2.0  0.20  0.65
    3.40  2.0  0.25  0.55