Быстрое создание итогового фрейма данных - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть фрейм данных, который я хочу обобщить в новый фрейм данных: в исходном фрейме данных есть человек, дата и три фиктивных категории - футбол, теннис и волейбол, указывающие, что человек играл в этот вид спорта (серая таблица) )

Я хочу составить «сводную df», которая показывает, сколько раз человек играл каждый вид спорта в каждой четверти (синяя таблица). Есть ли способ сделать это действительно эффективным, потому что когда датафрейм состоит из более чем 100 разных людей и нескольких сотен тысяч дат? Я немного растерялся и ценю любой ответ!

enter image description here

1 Ответ

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

Одной из идей является преобразование даты и времени в кварталы и годы на Series.dt.quarter и Series.dt.year, а затем объединить sum:

dates = pd.to_datetime(df['Date'], format='%d.%m.%Y')
df1 = (df.groupby(['Person', 
                   dates.dt.quarter.rename('Quarter'), 
                   dates.dt.year.rename('Year')], sort=False)
         .sum()
         .reset_index())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...