我有一个具有以下结构的 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
任何有关我如何做到这一点的意见都将受到赞赏。
最佳答案
使用groupby
与聚合sum
和返回 DataFrame
的参数 as_index=False
:
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
关于python - 使用pandas计算python中列总和的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019276/