我的Pandas Dataframe采用以下格式:
A 5
A 7
A 4
B 2
B 7
C 8
我怎么能总结一下:
A 16
B 9
C 8
答案 0 :(得分:4)
您可以使用groupby:
col1 col2
0 A 5
1 A 7
2 A 4
3 B 2
4 B 7
5 C 8
df.groupby('col1')['col2'].sum()
col1
A 16
B 9
C 8
如果您希望保持列不变,正如您在评论中提到的那样,您可以将groupby
对象转换为新的数据框,如果这是您的意思。所以,你可以这样做:
new = pd.DataFrame({'col2' : df.groupby('col1')['col2'].sum()}).reset_index()
new
col1 col2
0 A 16
1 B 9
2 C 8
答案 1 :(得分:1)
我认为您可以使用pivot_table
作为聚合函数使用sum
:
In [9]: df
Out[9]:
0 1
0 A 5
1 A 7
2 A 4
3 B 2
4 B 7
5 C 8
In [10]: df.pivot_table(index=0, aggfunc=sum).reset_index()
Out[10]:
0 1
0 A 16
1 B 9
2 C 8