我有一个带有多级列的pandas表:x1c 0d1x如何对具有相同0级名称的列求平均值?因此基本上G1下的所有列(可以大于2)将被平均为每行的一列然后G2下的所有列将被平均为每行的一列等等...我可以用for循环来实现,但是有没有更好的方法来获得这个输出df:| 实验|g1|二代|| - ------|- ------|- ------|| e1|0.7...导出为avg(1,0.44..)|0.54分。|| 第二代|0.7..|-0.05|
h9a6wy2h1#
您可以对具有axis=1的列执行groupby,并指定level
axis=1
groupby
level
out = df.groupby(level=0, axis=1).mean()
print(df) g1 g2 e1 e2 e1 e2 0 1 0.44 0.9 0.14 print(out) g1 g2 0 0.72 0.52
zzlelutf2#
事实上,我和一个小组一起管理它:df.groupby(by=df.columns.get_level_values(0), axis=1).mean()
df.groupby(by=df.columns.get_level_values(0), axis=1).mean()
2条答案
按热度按时间h9a6wy2h1#
您可以对具有
axis=1
的列执行groupby
,并指定level
zzlelutf2#
事实上,我和一个小组一起管理它:
df.groupby(by=df.columns.get_level_values(0), axis=1).mean()