【发布时间】:2017-12-12 01:31:21
【问题描述】:
我有一个带有分层多索引的 Pandas DataFrame,如下所示:
In [1]: df
S A A B B C
foo 1 2 3 4 5
bar 10 20 30 40 50
2016-09-25 0.09321 0.101425 0.129751 0.129751 0.098990
2016-10-06 0.09321 0.101425 0.091678 0.091678 0.030795
2016-10-18 0.09321 0.101425 0.143422 0.143422 0.045204
2016-10-25 0.09321 0.101425 0.103444 0.103444 0.045911
其中S、foo 和bar 是层次索引,日期是实际的DataFrame 索引。
我想按 S 进行分组,并将分层索引与数据框相同,以便 df.sum 或 df.groupby(level=0,axis=1).sum() 版本看起来像这样,包括 foo和 bar 行:
S A B C
foo 3 7 5
bar 30 70 50
2016-09-25 0.194635 0.259502 0.098990
2016-10-06 0.194635 0.183356 0.030795
2016-10-18 0.194635 0.286844 0.045204
2016-10-25 0.194635 0.206887 0.045911
【问题讨论】:
-
你希望 foo 和 bar 在 sum 之后如何?
-
原始数据框上的
stack(0)和groupby(level=0)是否为您提供所需的内容? -
@Wen:按组求和
S?如果将它们作为操作的 DataFrame 数据处理,然后返回到分层索引,那就没问题了。 -
@Andrew:不,它没有。如果我这样做,
S没有分组(或求和或含义)。我还有 5 列。