我有一个具有以下结构的DataFrame:
+----------+--------+-------+---------------+
| cash | game |item_id|username |
+-------------------+-------+---------------+
| 0 10.42 | test1 | 131 | my_name_1 |
| 1 4.45 | test2 | 133 | my_name_2 |
| 2 123.2 | test1 | 23 | my_name_1 |
+------------------+--------+---------------+
我需要编写一个方法,将此DataFrame作为输入,并返回每个用户每场比赛花费的金额。输出应如下所示:
username game
my_name_1 test1 133.62
my_name_2 test2 4.45
我对如何做到这一点的任何意见表示赞赏。
答案 0 :(得分:1)
使用groupby
汇总sum
和参数as_index=False
返回DataFrame
:
print (df.groupby(['username','game'], as_index=False)['cash'].sum())
username game cash
0 my_name_1 test1 133.62
1 my_name_2 test2 4.45
或添加reset_index
:
print (df.groupby(['username','game'])['cash'].sum().reset_index())
username game cash
0 my_name_1 test1 133.62
1 my_name_2 test2 4.45