Python 如何使用pd.Grouper按月分组日期?

Python 如何使用pd.Grouper按月分组日期?,python,python-3.x,datetime,pandas-groupby,Python,Python 3.x,Datetime,Pandas Groupby,我搜索了stackoverflow以了解如何按月对DateTime进行分组,由于某些原因,我一直收到此错误,即使在我通过pd.to.DateTime传递数据帧之后也是如此 TypeError:仅对DatetimeIndex、TimedeltaIndex或 PeriodIndex,但获取了“Int64Index”的实例 当我拉取df['Date']的数据类型时,它会显示dtype:datetime64[ns]任何想法,我为什么会一直收到这个错误?原因很简单:您没有将groupby键传递给group

我搜索了stackoverflow以了解如何按月对DateTime进行分组,由于某些原因,我一直收到此错误,即使在我通过
pd.to.DateTime
传递数据帧之后也是如此

TypeError:仅对DatetimeIndex、TimedeltaIndex或 PeriodIndex,但获取了“Int64Index”的实例


当我拉取
df['Date']
的数据类型时,它会显示
dtype:datetime64[ns]
任何想法,我为什么会一直收到这个错误?

原因很简单:您没有将groupby键传递给
groupby

您需要的是按照
df['Date']
内容的月份值对整个数据帧进行分组

然而,
df['Date'].groupby(pd.Grouper(freq='M'))
实际上做的是首先从数据帧的
Date
列中提取一个
pd.Series
。然后,它尝试对该
系列执行groupby;在没有指定键的情况下,它默认尝试按索引分组,索引当然是数字

这将有助于:

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

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