我正在尝试加载statsmodels数据集,就像在教程中看到的那样,但是我一直遇到错误。
import statsmodels as sm
import pandas as pd
data = sm.datasets.co2.load_pandas()
co2 = data.data
co2['ds'] = co2.index
co2.rename(columns={'co2': 'y'}, inplace=True)
co2.tail()
这是我得到的错误:
TypeError:新()获得了意外的关键字参数“格式”
答案 0 :(得分:0)
看起来问题出在原始函数“ load_pandas”上,新版pd.DatetimeIndex中不再存在“ format”参数,有关详细信息,请参阅https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DatetimeIndex.html
def load_pandas():
data = load()
# pandas <= 0.12.0 fails in the to_datetime regex on Python 3
index = pd.DatetimeIndex(start=data.data['date'][0].decode('utf-8'),
periods=len(data.data), format='%Y%m%d',
freq='W-SAT')
dataset = pd.DataFrame(data.data['co2'], index=index, columns=['co2'])
#NOTE: this is how I got the missing values in co2.csv
#new_index = pd.DatetimeIndex(start='1958-3-29', end=index[-1],
# freq='W-SAT')
#data.data = dataset.reindex(new_index)
data.data = dataset
return data
因此,解决此问题的方法如下:
将数据加载到pandas DataFrame中
co2 = pd.DataFrame(sm.datasets.co2.load().data)
将字节转换为字符串,然后转换为日期时间
co2['date'] = pd.to_datetime(co2.date.apply(lambda x: x.decode("utf-8")))
将日期设置为索引
co2.set_index('date',inplace=True)