我有一些带时间戳的OHLC数据,我试图通过迭代原始OHLC数据帧来重建未压缩的高低数据帧。
OHLC日期框架如下所示:
open high low close index1 r1 TPO
timestamp
2014-05-07 09:30:00 187.40 187.62 187.16 187.16 0 0.46 NA
2014-05-07 10:00:00 186.96 187.32 186.13 186.18 1 1.19 NA
2014-05-07 10:30:00 186.47 186.90 186.47 186.88 2 0.43 NA
2014-05-07 11:00:00 186.78 186.97 186.67 186.68 3 0.30 NA
2014-05-07 11:30:00 186.85 187.69 186.85 187.69 4 0.84 NA
这里的想法是重新创建行中的每个条形并创建填充范围的数据框。对于每一行,我调用一个函数来重新创建行i的填充范围。这工作正常,并创建并返回x1或x2中的行数据帧。
接下来,我想追加,将数据帧连接到累积concat函数中的数据帧..它似乎也正确地执行此操作
def TPOprint(low,high,tick):
range=np.arange(low,high,tick)
p1=pd.DataFrame({'Price':range,'Count':np.ones(len(range),dtype=np.int)},index=range)
return p1
for i, row in bars.iterrows():
if counter>0:
low=bars.low[i]
high=bars.high[i]
x2=TPOprint(low,high,tick_size)
if x2.empty:
print('DataFrame is empty! Skipped ', bars.index1[i])
TPOtemp=pd.concat([x1,x2])
x1=TPOtemp
TPO=x1.groupby(x1.index)
g=TPO.sum()
最后,在完成所有连接之后,我想按价格分组并获得每个价格的计数总和......这就是问题真正发生的地方。即使我执行分组,重复的价格也没有合并,因此没有发生总结。您可以看到下面的输出不正确。我被困住了,不明白为什么。
我最终想要对这些数据执行直方图,所以如果有人知道为什么会这样,我会很感激。
Count Price
186.46 1 186.46
186.47 1 186.47
186.47 1 186.47
186.48 1 186.48
186.48 1 186.48
186.49 1 186.49
186.49 1 186.49
186.50 1 186.50
186.50 1 186.50
186.51 1 186.51
186.51 1 186.51
186.52 1 186.52
186.52 1 186.52
186.53 1 186.53
186.53 1 186.53
186.54 1 186.54
186.54 1 186.54
186.55 1 186.55
186.55 1 186.55
186.56 1 186.56
186.56 1 186.56
186.56 1 186.56
186.57 1 186.57
186.57 1 186.57