groupby 1列和其他列的总和作为新的数据框熊猫

Shubham R

我有一个熊猫数据框:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章