我在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()
答案 0 :(得分:3)
我认为这可能有用
df.tail(n).std()
答案 1 :(得分:1)
您可以使用pandas DataFrame rolling
功能。在您的示例中,我不确定您是否只需要最后n行的std,或者在df['std']
的第i行中,您希望从{in} -th到{-1的第i行的std行}}
第二个选项可以这样做:
df['Close']