gpt4 book ai didi

python - 对多索引 Pandas 数据框上的重复行求和

转载 作者:行者123 更新时间:2023-11-28 21:37:55 25 4
gpt4 key购买 nike

你好,我在处理 Pandas 时遇到了麻烦。我正在尝试对多索引数据帧上的重复行求和。我尝试了 df.groupby(level=[0,1]).sum() ,也尝试了 df.stack().reset_index().groupby(['year', ' product']).sum() 和其他一些,但我无法让它工作。我还想添加每个给定年份的每个独特产品,如果未列出,则给它们一个 0 值。

示例:具有多索引和 3 种不同产品(A、B、C)的数据框:

                  volume1    volume2
year product
2010 A 10 12
A 7 3
B 7 7
2011 A 10 10
B 7 6
C 5 5

预期输出:如果给定年份有重复产品,则我们将它们相加。如果其中一个产品一年未列出,我们将创建一个全为 0 的新行。

                  volume1     volume2
year product
2010 A 17 15
B 7 7
C 0 0
2011 A 10 10
B 7 6
C 5 5

有什么想法吗?谢谢

最佳答案

您可以将索引的第二级设置为 CategoricalIndex,当您使用 groupby 时,它将包括所有类别。

df.index.set_levels(pd.CategoricalIndex(df.index.levels[1]), 1, inplace=True)
df.groupby(level=[0, 1]).sum().fillna(0, downcast='infer')

volume1 volume2
year product
2010 A 17 15
B 7 7
C 0 0
2011 A 10 10
B 7 6
C 5 5

关于python - 对多索引 Pandas 数据框上的重复行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com