Groupby DatetimeIndex месяц - PullRequest
       53

Groupby DatetimeIndex месяц

1 голос
/ 13 октября 2019

Я пытаюсь сгруппировать соответствующий месяц за промежуток лет, но безрезультатно. Например, сгруппировать все Januarys с 2011 по 2013 годы вместе. Сгруппируйте все Febs вместе.

Частичный набор данных:

Date
2011-01-01    161
2011-02-01    117
2011-03-01    239
2012-01-01    289
2012-02-01    294
2012-03-01    378
2013-01-01    383
2013-02-01    361

Ожидаемый результат:

Date
2011-01-01    161
2012-01-01    117
2013-01-01    239
2011-02-01    289
2012-02-01    294
2013-02-01    378
2011-03-01    383
2012-03-01    361

Попытка:

Дата: DatetimeIndex

df = df.groupby([df.index.year],[df.index.month])

Вывод: TypeError: unhashable тип: 'list'

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Вы передаете два списка, передаете один список с двумя элементами, например:

df = df.groupby([df.index.year, df.index.month])
0 голосов
/ 13 октября 2019

Мы можем попробовать argsort

df=df.iloc[df.index.month.argsort()]
df
2011-01-01    161
2012-01-01    289
2013-01-01    383
2011-02-01    117
2012-02-01    294
2013-02-01    361
2011-03-01    239
2012-03-01    378
Name: Date, dtype: int64
...