Task: write a function to change the timeframe on the encodings.
The body of the program:
import pandas as pd import numpy as np from future_functions import * # Load CSV Data data = pd.read_csv('Data/Hours.csv') data.columns = ['Date','open','high','low','close','AskVol'] data = data.set_index(pd.to_datetime(data.Date)) data = data[['open','high','low','close','AskVol']] prices = data.drop_duplicates(keep=False) hkaprices = prices.copy() hkaprices['Symbol'] = 'SYMB' HKA = OHLCresample(hkaprices,'15H') where future_functions is a connected file with a function.
The function itself:
def OHLCresample(DataFrame,TimeFrame,column='ask'): grouped = DataFrame.groupby('Symbol') if np.any(DataFrame.columns == 'Ask'): if column == 'ask': ask = grouped['Ask'].resample(TimeFrame).ohlc() askVol = grouped['AskVol'].resample(TimeFrame).count() resampled = pd.DataFrame(ask) resampled['AskVol'] = askVol elif column == 'bid': bid = grouped['Bid'].resample(TimeFrame).ohlc() bidVol = grouped['BidVol'].resample(TimeFrame).count() resampled = pd.DataFrame(bid) resampled['BidVol'] = bidVol else: raise ValueError('Column must be a string. Either ask or bid') elif np.any(DataFrame.columns == 'close'): open = grouped['open'].resample(TimeFrame).ohlc() close = grouped['close'].resample(TimeFrame).ohlc() high = grouped['high'].resample(TimeFrame).ohlc() low = grouped['low'].resample(TimeFrame).ohlc() askVol = grouped['AskVol'].resample(TimeFrame).ohlc() resampled = pd.DataFrame(open) resampled['high'] = high resampled['low'] = low resampled['close'] = close resampled['AskVol'] = askVol resampled = resampled.dropna() return resampled I get the error:
KeyError: 'AskVol'
ValueError: Wrong number of items passed 4, placement implies 1
I understand that the problem is in dimension, but I do not know how to solve it.