#python #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
Комментарии:
1. За август 37, а не 47.
Ответ №1:
Вы можете сгруппировать по годам и месяцам .groupby()
и взять сумму по .sum()
.
Если вам нужна строка даты, как YYYY-mm
в выходных данных, вы можете использовать отформатированную строку даты непосредственно в качестве группера. Получите строку даты с помощью 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