如何获得最后n行的标准差?

时间:2018-05-27 09:51:13

标签: python pandas

我在pandas数据帧中加载了OHLC csv。我试图获得最后n行'性病。我正在循环通过df。以下是我到目前为止所做的事情:

df['std'] = np.zeros([len(df), 1])
for i, row in df.iterrows():
    df['std'][i] = df['Close'][-(i+ln):i].std()

编辑:

要清楚,我需要每行的最后n行标准。让我们说我的行索引是100,n是25.我需要75:100 std并且需要将它应用于每一行。这是我的解决方案,但我认为这是一个漫长的道路:

for i, row in df.iterrows():
    if i > ln-2:
        end = -(clen-i)
        begin = end - ln
        df['std'][i] = df['Close'][begin:end].std()

2 个答案:

答案 0 :(得分:3)

我认为这可能有用

df.tail(n).std()

答案 1 :(得分:1)

您可以使用pandas DataFrame rolling功能。在您的示例中,我不确定您是否只需要最后n行的std,或者在df['std']的第i行中,您希望从{in} -th到{-1的第i行的std行}}

第二个选项可以这样做:

df['Close']