ValueError: длина переданных значений равна 7, индекс подразумевает 0

Я пытаюсь получить 1 минутные значения открытия, максимума, минимума, закрытия, объема от bitmex, используя ccxt. Кажется, все в порядке, но я не уверен, как исправить эту ошибку. Я знаю, что индекс равен 7, потому что в столбцах OHLC есть 7 значений, которые я получаю в кадре данных. Я не уверен, почему вместо этого подразумевается, что есть 0. Большое спасибо, что у меня болит голова весь день:(

# noinspection PyUnresolvedReferences
from datetime import datetime
# noinspection PyUnresolvedReferences
import time
# noinspection PyUnresolvedReferences
import ccxt
# noinspection PyUnresolvedReferences
import numpy as np
import pandas as pd
# noinspection PyUnresolvedReferences
from IPython.display import display, clear_output


OHLCVcolumns = ['date', 'timestamp', 'open', 'high', 'low', 'close', 'volume']

dfOHLCV = pd.DataFrame(index=[], columns=OHLCVcolumns)

bitmex = ccxt.bitmex()


def fetch_current(x):
    while True:
        if datetime.now().second == x:
            break
        time.sleep(0.5)


def fetch_mex():
    listOHLCV = bitmex.fetch_ohlcv('BTC/USD',
                                   timeframe='1m',
                                   limit=5,
                                   params={'reverse': True})

    lst = list(listOHLCV[1])

    lst.insert(0, datetime.fromtimestamp((lst[0]) / (1000 + 60 * 60 * 9 - 60)).strftime("%Y/%d/%m, %H: %M:"))

    series = pd.Series(lst, index=dfOHLCV)

    return listOHLCV, series


while True:
    fetch_current(1)

    listOHLCV, series = fetch_mex()

    dfOHLCV = dfOHLCV.append(series, ignore_index=True)


clear_output(wait=True)
display(listOHLCV)
display(dfOHLCV)

fetch_current(55)

1 ответ

Решение

Не уверен, где вы получаете ошибку, это здесь?

series = pd.Series(lst, index=dfOHLCV)

Если это так, вы можете попробовать вместо этого:

series = pd.Series(lst, index=OHLCVcolumns)

Поскольку, когда вы выполняете это, индекс ссылается на пустой фрейм данных dfOHLCV.

Другие вопросы по тегам