我有这样的数据。
id date amount
2 2018-04-03 10
2 2018-04-22 20
3 2018-01-21 20
4 2018-03-13 10
4 2018-04-19 30
我想计算每个月和每个 ID 的金额总和。所以结果会是这样的。每个 ID 中的月份不相同。
id date amount
2 2018-04 30
3 2018-01 20
4 2018-03 10
4 2018-04 30
我通过这段代码进行测试。
df['amount'].groupby(df['date'].dt.to_period('M')).sum()
结果是。
pos_dt
2018-04 60
2018-01 20
2018-03 10
它不是通过 id 单独分组的。如何解决?
最佳答案
您需要按 id
和月份对两者进行分组,以便可以通过以下方式计算:
df.groupby(<b>['id',</b> df['date'].dt.to_period('M')<b>]</b>).sum()
例如:
>>> df.groupby(['id', df['date'].dt.to_period('M')]).sum()
amount
id date
2 2018-04 30
3 2018-01 20
4 2018-03 10
2018-04 30
关于python - Pandas 如何将每个 id 的月份值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58474407/