我有一个经典的“高开低收”数据类型的数据框,在金融中很常见。每行为 1 分钟。720 行。我用 Kraken 的这个代码收集它:
import urllib.request, json
with urllib.request.urlopen("https://api.kraken.com/0/public/OHLC?pair=XXBTZEUR&interval=1") as url:
data = json.loads(url.read().decode())
columns=['time', 'open', 'high', 'low', 'close', 'vwap', 'volume', 'ount']
data_DF=pd.DataFrame(data['result']['XXBTZEUR'],columns=columns)
data_DF['open']=data_DF['open'].astype(float)
data_DF['high']=data_DF['high'].astype(float)
data_DF['low']=data_DF['low'].astype(float)
data_DF['close']=data_DF['close'].astype(float)
data_DF['volume']=data_DF['volume'].astype(float)
data_DF['vwap']=data_DF['vwap'].astype(float)
data_DF['ount']=data_DF['ount'].astype(int)
data_DF['time']=pd.to_datetime(data_DF['time'],unit='s')
data_DF.set_index('time',inplace=True)
我现在需要将它汇总到不同的时间段。为了简单起见,让我们假设只有经典的 5 分钟。每列必须根据不同的规则生成:
开列必须是样本开列值的第一个错误;
关闭列必须是样本关闭列值的最后一个值;
high 必须是样本的 high 列值的最大值;
低必须是样本低列值的最小值;
我试过
data_DF5=data_DF['vwap'].resample('5Min').OHLC()
但它为每列创建了一系列开盘高低收盘价。嗯,不是我要找的。
我试过:
data_DF5=data_DF['time'].resample('5Min')
data_DF5['volume']=data_DF['volume'].resample('5Min').sum()
data_DF5['open']=data_DF['open'].resample('5Min').first()
data_DF5['close']=data_DF['close'].resample('5Min').last()
data_DF5['high']=data_DF['high'].resample('5Min').max()
data_DF5['low']=data_DF['low'].resample('5Min').min()
旨在一次构建一列数据框。
我得到一个
“无法打开‘hashtable_class_helper.pxi’:找不到文件”错误,我无法理解。如果我改变第一行
data_DF5=data_DF['vwap'].resample('5Min').mean()
我得到了一个我什至无法解释的数据框 [参见 (*)]。
如果我改变第一行
data_DF5=data_DF['vwap'].resample('5Min')
我得到:
'DatetimeIndexResampler' 对象不支持项目分配。
我真的很茫然。我一直在寻找 stackoverflow 的其他问题,但似乎没有一个涵盖这种情况。另外,手册页似乎没有就如何解决这一点。
largeQ
相关分类