我是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中执行此操作的最佳和最快方法是什么?
答案 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