TypeError при вызове resample () в пандах - PullRequest
0 голосов
/ 29 октября 2018

Я не трогал код некоторое время, пока весь мой блок кода не стал причинять мне головную боль в течение нескольких дней. Раньше работал до следующего вызова с resample всплыли.

Вот ошибка:

Файл "C: \ Users \ JonesDavid \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pandas \ core \ generic.py", строка 5522, в примере base=base, key=on, level=level)

Файл "C: \ Users \ JonesDavid \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pandas \ core \ resample.py", строка 999, в повторном примере return tg._get_resampler(obj, kind=kind)

Файл "C: \ Users \ JonesDavid \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pandas \ core \ resample.py", строка 1116, в _get_resampler "but got an instance of %r" % type(ax).__name__)

TypeError : действительно только с DatetimeIndex, TimedeltaIndex или PeriodIndex, но получил экземпляр 'Index'

  • в doForecast: tsWeekly = ts.resample('W-MON').last())
  • в основном: doForecast(panel)
  • в: main()

Это весь мой код минус части, связанные с прорисовкой:

import pandas_datareader.data as web
from datetime import datetime
# removed imports related to plotting

TRAIN_SIZE = 0.2
FORECAST_STEPS = 20
STOCKS_PREDICT = ['SPY', 'AAPL']


def downloadData(startDate, endDate):

    histPanel = web.DataReader(STOCKS_PREDICT, 'iex' , startDate, endDate)
    contains_condition = ((histPanel.isnull()) | (histPanel == 0)).any(axis=1)
    to_keep = contains_condition[contains_condition == False].index
    histPanel = histPanel.loc[to_keep]

    return histPanel


print(downloadData("01/01/2017","01/01/2019"))


def doForecast(Panel):

    closeDF = Panel['close']
    ts = closeDF['SPY']
    tsWeekly = ts.resample('W-MON').last() # TypeError here
    values = tsWeekly.tolist()

    # removed unrelevant plotting code


def main():
    startDate = datetime(2017, 1, 1)
    endDate = datetime.today()

    panel = downloadData(startDate, endDate)

    doForecast(panel)


if __name__ == '__main__':
    main()
...