pandas 平均多级列

问题描述 投票:0回答:2

我有一个包含多级列的熊猫表:

如何对具有相同级别 0 名称的列进行平均?

所以基本上 g1 下的所有列(可能超过 2 列)将平均为每一行的一列
然后 g2 下的所有列将平均为每一行的一列
等等……

我可以用 for 循环来做到这一点,但是有没有更好的方法来获得这个输出 df:

exp g1 g2
e1 0.7... 派生为 avg(1, 0.44..) 0.54..
e2 0.7.. -0.05..
pandas multi-level
2个回答
1
投票

您可以使用

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

0
投票

实际上,我和一群人一起管理它:

df.groupby(by=df.columns.get_level_values(0), axis=1).mean()

© www.soinside.com 2019 - 2024. All rights reserved.