我有一个如下的数据框
A B C D
0 cat 5 aa X
1 wolf 8 bb Y
2 dog 3 cc Z
3 cat 6 aa X
3 dog 6 cc Z
我想用A分组并总结C.我知道我可以做以下
>>>df.groupby('A').sum().C
A C
cat 7
wolf 1
dog 9
但它返回一个系列,我想要A的每个值的所有静态数据得到像
这样的东西 A B C D
0 cat 11 aa X
1 wolf 1 bb Y
2 dog 9 cc Z
有什么想法吗?
答案 0 :(得分:1)
您可以使用transform
覆盖原始df中的列'B',然后调用drop_duplicates
:
In [95]:
df['B'] = df.groupby('A')['B'].transform('sum')
df = df.drop_duplicates('A')
df
Out[95]:
A B C D
0 cat 11 aa X
1 wolf 8 bb Y
2 dog 9 cc Z