你好,我在处理熊猫方面遇到了麻烦。我正在尝试对多索引数据帧上的重复行进行求和。
我尝试过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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)