Как загрузить набор данных Statsmodels в Python?

#python #pandas #statsmodels

#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()
  

Это ошибка, которую я получаю:

Ошибка типа: new() получил неожиданный аргумент ключевого слова ‘format’

Комментарии:

1. На github есть открытая проблема с этой ошибкой. У меня здесь сработал обходной путь.

Ответ №1:

похоже, проблема связана с оригинальной функцией «load_pandas», параметр «формат» больше не существует в новой версии pd.DatetimeIndex, для получения подробной информации, пожалуйста, обратитесь к 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

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

  2. преобразуйте байты в строку, а затем datetime

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

  3. установите дату в качестве индекса

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

вывод: введите описание изображения здесь