Pandas сгруппировать столбцы с несколькими столбцами по дате недели - PullRequest
1 голос
/ 17 апреля 2020

Я хочу суммировать три столбца, которые я получил в моем фрейме данных, в столбце даты. Подвох в том, что подведение итогов должно происходить на основе диапазона эпохи. Например: 14-я неделя эпохи - с 30 марта 2020 года по 5 апреля 2020 года, 15-я неделя - с 6 апреля 2020 года по 15 апреля 2020 года и т. Д. Столбец date_time уже находится в правильном формате datetime. Недели эпох можно найти здесь: epochweek

Мой фрейм данных выглядит следующим образом:

   date_time                    A        B
0  01/04/2020  00:00:00         5        10
1  02/04/2020  00:00:00         5        10
2  03/04/2020  00:00:00         1        10
3  07/04/2020  00:00:00         2        10
4  08/04/2020  00:00:00         2        10
5  10/04/2020  00:00:00         3        10

Вывод должен выглядеть следующим образом:

epoch_week       sum_A       sum_B
week14           11          30
week15           7           30
Total            18          60

1 Ответ

1 голос
/ 17 апреля 2020

Использование Series.dt.weekofyear с датами и совокупностью sum:

g = pd.to_datetime(df['date_time'], dayfirst=True).dt.weekofyear

df = df.groupby(g.rename('epoch_week')).sum().reset_index()
print (df)
   epoch_week   A   B
0          14  11  30
1          15   7  30

РЕДАКТИРОВАТЬ:

g = pd.to_datetime(df['date_time'], dayfirst=True).dt.weekofyear

df = df.groupby(g.rename('epoch_week')).sum()
df.loc['Total'] = df.sum()
df = df.reset_index()
...