Невозможно пересчитать данные временного ряда, TypeError - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь выполнить повторную выборку этих данных, загруженных из quandl, но у меня есть TypeError, даже если они выглядят как datetime64[ns].

Я попытался запустить pd.to_datetime(df['Date']), чтобы убедиться, что это тип даты и времени, но безуспешно.

df = pd.read_pickle('data1')
print(df.Close.head())
df = df.reset_index()
df = df[['Date', 'Close']]
print(df.Date.head())
df = df.resample('W').mean

Date
2004-08-19    100.335
2004-08-20    108.310
2004-08-23    109.400
2004-08-24    104.870
2004-08-25    106.000
Name: Close, dtype: float64
0   2004-08-19
1   2004-08-20
2   2004-08-23
3   2004-08-24
4   2004-08-25
Name: Date, dtype: datetime64[ns]
Traceback (most recent call last):
  File "/Users/raymond.devries/PycharmProjects/untitled2/datatry.py", line 15, in <module>
    df = df.resample('W').mean
  File "/Users/raymond.devries/PycharmProjects/untitled2/venv/lib/python3.7/site-packages/pandas/core/generic.py", line 8155, in resample
    base=base, key=on, level=level)
  File "/Users/raymond.devries/PycharmProjects/untitled2/venv/lib/python3.7/site-packages/pandas/core/resample.py", line 1250, in resample
    return tg._get_resampler(obj, kind=kind)
  File "/Users/raymond.devries/PycharmProjects/untitled2/venv/lib/python3.7/site-packages/pandas/core/resample.py", line 1380, in _get_resampler
    "but got an instance of %r" % type(ax).__name__)
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

Я не осознавал, что время даты и времени нужно было установить в качестве индекса. Функция resample считывает индекс фрейма данных. Индекс фрейма данных уже был установлен на индекс даты и времени, поэтому мне не нужно было запускать df = df.reset_index(), и таким образом я превратил свой индекс в объект диапазона.

Рабочий код:

df = pd.read_pickle('data1')
df = df[['Close']]
df = df.resample('W').mean()
print(df.head())

Выход:

               Close
Date                
2004-08-22  104.3225
2004-08-29  106.8660
2004-09-05  101.2300
2004-09-12  102.8800
2004-09-19  112.4900

Process finished with exit code 0
0 голосов
/ 25 мая 2019

В ошибке четко указывалось, что повторная выборка действительна только для формата индекса даты, с другой стороны, вы получили индекс диапазона, например, кадр данных, сначала преобразуйте индекс из диапазона в данные типа даты, удалите столбец даты, а затем выполните повторную выборку, это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...