列子集问题的熊猫标准开发者

时间:2019-04-29 08:45:53

标签: python pandas

是否有一种方法可以在数据帧中执行滚动标准偏差,其中从第0行开始以200行数据帧为单位,以15为增量递增到200?

df['SD1'] = df['ratio_div'].rolling(window =-15, min_periods= -15).std()

您不能做一个负向滚动窗口。我还能通过哪些其他方式实现这一目标?我尝试用15和15进行操作,并且SD的前15个是Nan。如果将ratio_dev的索引0移到索引14,则SD1索引0应该有一个值。

ratio_div在索引0处始终是最新的,应该显示其本身的std以及前一个14。这似乎不适用于我尝试的选项。有什么想法吗?

                time    close   num ratio   ratio_div       SD1
    0   4/29/2019 8:24  1.1159  386 0   0
    1   4/29/2019 8:23  1.1159  620 -1  -0.000448029
    2   4/29/2019 8:22  1.116   648 1   0.000448069
    3   4/29/2019 8:21  1.1159  606 0   0
    4   4/29/2019 8:20  1.1159  638 1   0.000448109
    5   4/29/2019 8:19  1.1158  607 -2  -0.000896057
    6   4/29/2019 8:18  1.116   679 1   0.000448069
    7   4/29/2019 8:17  1.1159  676 1   0.000448109
    8   4/29/2019 8:16  1.1158  680 -1  -0.000448069
    9   4/29/2019 8:15  1.1159  694 1   0.000448109
   10   4/29/2019 8:14  1.1158  776 1   0.000448149
   11   4/29/2019 8:13  1.1157  937 -2  -0.000896138
   12   4/29/2019 8:12  1.1159  628 0   0
   13   4/29/2019 8:11  1.1159  613 0   0
   14   4/29/2019 8:10  1.1159  655 -1  -0.000448029
   15   4/29/2019 8:09  1.116   842 -1  -0.000447989
   16   4/29/2019 8:08  1.1161  820 -3  -0.001343604
   17   4/29/2019 8:07  1.1164  661 2   0.000895897
   18   4/29/2019 8:06  1.1162  640 0   0
   19   4/29/2019 8:05  1.1162  590 -1  -0.000447908
   20   4/29/2019 8:04  1.1163  569 1   0.000447948
   21   4/29/2019 8:03  1.1162  603 0   0

1 个答案:

答案 0 :(得分:0)

这解决了我在这里试图做的事情。只需将其应用于每一行...。这就是我现在遇到的问题。

def eric_std(idxs):            
    x=idxs
    y=idxs+14
    result = (df.loc[x:y,['ratio_div']].std()).values[0]        
return result