我有一个包含多级列的熊猫表:
所以基本上 g1 下的所有列(可能超过 2 列)将平均为每一行的一列
然后 g2 下的所有列将平均为每一行的一列
等等……
我可以用 for 循环来做到这一点,但是有没有更好的方法来获得这个输出 df:
exp | g1 | g2 |
---|---|---|
e1 | 0.7... 派生为 avg(1, 0.44..) | 0.54.. |
e2 | 0.7.. | -0.05.. |
您可以使用
groupby
在列上执行 axis=1
并指定 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
实际上,我和一群人一起管理它:
df.groupby(by=df.columns.get_level_values(0), axis=1).mean()