python - 如何在 Python 中加载 Statsmodels 数据集?
问题描述
正如我在教程中看到的那样,我正在尝试加载 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: new () got an unexpected keyword argument 'format'
解决方案
看来问题出在原函数“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)
推荐阅读
- javascript - 未捕获的类型错误:document.getElementById(...) 为空
- python - python - 如何使用n个参数和强制验证在python中执行xor的函数?
- shell - 如何在shell脚本中的目录之间迭代
- django - 'function' 对象没有属性 'order_by'
- latex - 如何在 Latex 中创建此表?
- gluon - Tornadofx2 - 使用 Gluon 的 NativeBuild
- reactjs - React-Leaflet:尽管 Redux 存储更新中的颜色值,但折线不会改变颜色
- css - 如何在垫子按钮,右边框/左边框上添加边框颜色?
- linux - 单击鼠标时 vs code 终端总是有自动换行
- c# - 拆分已经拆分的字符串