Concat,Groupby和sum()熊猫

时间:2014-06-20 16:39:59

标签: python numpy pandas

我有一些带时间戳的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

0 个答案:

没有答案