如何使用pd.Grouper按月对日期进行分组? [英] How do I group date by month using pd.Grouper?

查看:27
本文介绍了如何使用pd.Grouper按月对日期进行分组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我搜索了stackoverflow以了解如何按月对日期时间进行分组,但由于某些原因,我一直收到此错误,即使我通过pd.to.datetime

传递了数据帧之后也是如此
TypeError:仅对DatetimeIndex、TimedeltaIndex或 PerodIndex,但获取了"Int64Index"的实例

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

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

推荐答案

原因很简单:您没有将Groupby密钥传递给groupby

您想要的是根据df['Date']内容的月值对整个数据帧进行分组。

但是,df['Date'].groupby(pd.Grouper(freq='M'))实际做的是首先从DataFrame的Date列提取一个pd.Series。然后,它尝试对Series执行GROUPBY;如果没有指定的键,它将默认尝试按索引分组,索引当然是数字的。

这将起作用:

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

这篇关于如何使用pd.Grouper按月对日期进行分组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆