Как получить стандартное отклонение последних n строк? - PullRequest
0 голосов
/ 27 мая 2018

У меня есть CSV OHLC, загруженный в информационный кадр pandas.Я пытаюсь получить последние строки n ".Я петлю через DF.Вот что я сделал до сих пор:

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

РЕДАКТИРОВАТЬ:

Чтобы быть ясным, мне нужно std n последней строки каждой строки.Допустим, мой индекс строки равен 100, а n равен 25. Мне нужно 75: 100 стандартное и нужно применить это к каждой строке.Вот мое решение, но я думаю, что это долгий путь:

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 голосов
/ 27 мая 2018

Вы можете использовать функцию pandas DataFrame rolling.В вашем примере я не уверен, хотите ли вы просто std из последних n строк, или в i-й строке df['std'] вы хотите иметь std строк с (in) -го по i-й из df['Close'].

Второй вариант можно сделать так:

df['std'] = df['Close'].rolling(n).std()
0 голосов
/ 27 мая 2018

Я думаю, что это может сработать

df.tail(n).std()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...