ValueError: Length of passed values is 7, index implies 0
29,183
Not sure where you are getting the error, is it here?
series = pd.Series(lst, index=dfOHLCV)
If so you could try instead:
series = pd.Series(lst, index=OHLCVcolumns)
Since when you are running this, the index is referencing the empty dataframe dfOHLCV.
Author by
GSatterwhite
Updated on February 19, 2020Comments
-
GSatterwhite over 4 years
I am trying to get 1minute open, high, low, close, volume values from bitmex using ccxt. everything seems to be fine however im not sure how to fix this error. I know that the index is 7 because there are 7 values in the OHLCcolumns that I am getting into the dataframe. I am not sure why it is instead implying there are 0. Thanks so much this has been giving me a headache all day :(
# 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)