考虑此数据框
df = pd.DataFrame({'a': [1,2,1,3,4,2], 'c':['dd','ee','dd','as','ae','ee'], 'count':[5,9,1,6,8,3]})
a c count
0 1 dd 5
1 2 ee 9
2 1 dd 1
3 3 as 6
4 4 ae 8
5 2 ee 3
正如您所看到的,列中有重复的内容' a' 1 and 2
重复多次。
我想总结大熊猫的数量,就像在sql中我们做的那样。
我的最终df应该是这样的
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8
我尝试使用
df = df.groupby('a')
但它正在回归我
<pandas.core.groupby.DataFrameGroupBy object
答案 0 :(得分:3)
df = df.groupby(['a','c'], as_index=False)['count'].sum()
print (df)
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8
但是,如果仅需要列a
列,则必须aggregate
输出中需要的所有列 - 例如列c
由first
和count
按sum
汇总:
df = df.groupby('a').agg({'c':'first', 'count':'sum'}).reset_index()
print (df)
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8
答案 1 :(得分:3)
你几乎拥有它
df.groupby(['a', 'c']).sum().reset_index()
产量
a c count
0 1 dd 6
1 2 ee 12
2 3 as 6
3 4 ae 8