所以我有一个数据框df1,看起来像下面的样子:
A B C 1 foo 12 California 2 foo 22 California 3 bar 8 Rhode Island 4 bar 32 Rhode Island 5 baz 15 Ohio 6 baz 26 Ohio
我想按A列分组,然后对B列求和,同时将值保留在C列中。
A B C 1 foo 34 California 2 bar 40 Rhode Island 3 baz 41 Ohio
问题是,当我说df.groupby(’A’)。sum()列C被删除时,返回
B A bar 40 baz 41 foo 34
当我进行分组和求和时,如何解决这个问题并保留C列?
唯一的方法是将C包含在groupby中(groupby函数可以接受列表)。
试试看:
df.groupby(['A','C'])['B'].sum()
需要注意的另一件事是,如果需要在聚合后使用df,则还可以使用as_index = False选项返回数据框对象。当我第一次与熊猫一起工作时,这给我带来了麻烦。例:
df.groupby(['A','C'], as_index=False)['B'].sum()