编程语言
首页 > 编程语言> > python-熊猫石斑鱼vs时间石斑鱼

python-熊猫石斑鱼vs时间石斑鱼

作者:互联网

新的熊猫版本不赞成使用TimeGrouper,因此我们应该使用常规的Grouper.

旧代码:

df['column_name'].groupby(pd.TimeGrouper("M")).mean().plot()

在旧版本的熊猫中工作正常.但是,没有:

df.groupby(pd.Grouper(key='column_name', freq="M")).mean().plot()
df['column_name'].groupby(pd.Grouper(freq="M")).mean().plot()

在新版本中可用.
认为钥匙丢失,或者熊猫抱怨:

Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Float64Index'

编辑

import pandas as pd

df = pd.DataFrame({'column_name':['2017-01-01', '2017-01-02'],
                  'column_value':[1,3]})

df

df.index = pd.DatetimeIndex(df.column_name)

df.index

# old version
df['column_value'].groupby(pd.TimeGrouper("M")).mean().plot()

# new version
df.groupby(pd.Grouper(key='column_value', freq="M")).mean().plot()

解决方法:

正如我在评论中所说,键应该是grouper中的datetime.默认情况下,Timegrouper会将其转换为日期时间,因此请使用

df['column_name'] = pd.to_datetime(df['column_name'])
# new version
df.groupby(pd.Grouper(key='column_name', freq="M")).mean().plot()

标签:pandas,grouping,datetimeindex,python
来源: https://codeday.me/bug/20191025/1929765.html