Как сгруппировать дату по месяцу, используя pd.Grouper? - PullRequest
1 голос
/ 07 апреля 2019

Я искал stackoverflow, чтобы узнать, как сгруппировать DateTime по месяцам, и по какой-то причине я продолжаю получать эту ошибку, даже после того, как я пропущу кадр данных через pd.to.datetime

TypeError: Действительно только с DatetimeIndex, TimedeltaIndex или PeriodIndex, но получил экземпляр Int64Index

df['Date'] = pd.to_datetime(df['Date'])
df['Date'].groupby(pd.Grouper(freq='M'))

Когда я извлекаю тип данных для df['Date'], он показывает dtype: datetime64[ns] Есть идеи, почему я продолжаю получать эту ошибку?

1 Ответ

1 голос
/ 07 апреля 2019

Причина проста: вы не передали групповой ключ на groupby.

Вам нужно сгруппировать весь фрейм данных по значениям месяца содержимого df['Date'].

Однако на самом деле df['Date'].groupby(pd.Grouper(freq='M')) сначала извлекает pd.Series из столбца Date в DataFrame. Затем он пытается выполнить групповую операцию на этом Series; без указанного ключа по умолчанию выполняется попытка группировки по индексу, который, конечно, числовой.

Это будет работать:

df.groupby(pd.Grouper(key='Date', freq='M'))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...