панды: Суммируйте группу по месяцам с данного дня

#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