我有一个熊猫数据框:
id won lost match
v1 1 0 1
v1 2 1 3
v1 0 5 8
v2 3 1 7
v2 5 5 12
我想分组ID和求和其他列,例如我得到一个df
id total_won total_lost total_match
v1 3 6 12
v2 8 6 19
我如何使用pandas groupby和sum操作求和多列。我尝试使用此:
pd.groupby('id')['won'].sum()
pd.groupby('id')['lost'].sum()
pd.groupby('id')['match'].sum()
有什么更好的方法吗?
使用groupby
没有定义列-合计所有的数字列求和,然后add_prefix
和最后一个reset_index
:
df1 = df.groupby('id').sum().add_prefix('total_').reset_index()
print (df1)
id total_won total_lost total_match
0 v1 3 6 12
1 v2 8 6 19
如果需要指定多个列,请添加list
列:
cols = ['won','lost']
df1 = df.groupby('id')[cols].sum().add_prefix('total_').reset_index()
print (df1)
id total_won total_lost
0 v1 3 6
1 v2 8 6
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句