如何在Python中加载Statsmodels数据集?

时间:2019-03-29 16:21:27

标签: python pandas 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:()获得了意外的关键字参数“格式”

1 个答案:

答案 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

因此,解决此问题的方法如下:

  1. 将数据加载到pandas DataFrame中

    co2 = pd.DataFrame(sm.datasets.co2.load().data)

  2. 将字节转换为字符串,然后转换为日期时间

    co2['date'] = pd.to_datetime(co2.date.apply(lambda x: x.decode("utf-8")))

  3. 将日期设置为索引

    co2.set_index('date',inplace=True)

输出: enter image description here