首页 > 解决方案 > pandas:从给定日期开始按月分组

问题描述

我有下面的数据框,我想按月对组求和。请问我该怎么做?

date, Revenue, Fourniture
2021-07-01, 200, 5
2021-07-08, 300, 12
2021-08-01, 400, 10
2021-08-18, 200, 12
2021-08-30, 100, 10
2021-08-31, 400, 5

预期产出

2021-07, 500, 17
2021-08, 1400, 47

标签: pythonpandas

解决方案


您可以按年/月分组,.groupby()然后按 取总和.sum()

由于您想要YYYY-mm输出中的日期字符串,您可以直接使用格式化的日期字符串作为 Grouper。使用 获取日期字符串dt.strftime()

# convert to datetime format if not already in datetime
df['date'] = pd.to_datetime(df['date'])

df.groupby(df['date'].dt.strftime('%Y-%m')).sum().reset_index()

结果:

      date  Revenue  Fourniture
0  2021-07      500          17
1  2021-08     1100          37

推荐阅读