Группировать по схожим датам в pandas - PullRequest
0 голосов
/ 30 марта 2020

У меня есть фрейм данных с одним столбцом, который является объектом серии datetime. У него есть некоторые данные, связанные с каждой датой в другом столбце. Год колеблется от 2005-2014. Я хочу сгруппировать похожие даты в каждом году вместе, то есть все 1 января, приходящиеся на 2005-15 годы, должны быть сгруппированы независимо от года. Аналогично для всех 365 дней в году. Так что у меня должно быть 365 дней на выходе. Как я могу это сделать?

1 Ответ

0 голосов
/ 30 марта 2020

Предполагая, что ваш DataFrame имеет столбец Date, вы можете сделать его индексом DataFrame, а затем использовать strftime, чтобы преобразовать в формат с указанием только дня и месяца (например, "%m-%d") и groupby плюс соответствующая функция (я только что использовал mean):

df = df.set_index('Date')
df.index = df.index.strftime("%m-%d")
dfAggregated = df.groupby(level=0).mean()

Обратите внимание, что выходной будет иметь 366 дней, из-за високосных лет. Возможно, вы захотите отфильтровать данные, связанные с 29 февраля, или объединить их с 28 февраля / 1 марта (в зависимости от конкретного c варианта использования вашего приложения)

...