Как найти скользящие значения индекса min () или max () для определенного окна? - PullRequest
0 голосов
/ 10 октября 2019

В настоящее время я использую Python 3.7.4 и немного новичок в программировании на Python. У меня есть данные временных рядов по акциям Close Price. Я использую функцию «прокатки», чтобы создать новый столбец в моем фрейме данных, чтобы вычислить минимальный и максимальный спред (т. Е. Диапазон) за период в 60 дней.

df['max'] = df['Close'].rolling(window=60, min_periods=60).max()
df['min'] = df['Close'].rolling(window=60, min_periods=60).min()
df['range'] = df['max'] - df['min']

У меня возникли проблемы с определением того, было ли минимальное значение первым или первое максимальное в течение 60-дневного окна. Я хотел бы создать в столбце данных новый столбец, который дает мне флаг, сообщающий мне, были ли минимальные или максимальные значения первыми (например, если минимальные значения индекса <максимальное значение индекса в течение скользящего 60-дневного периода, <code>df['flag'] = 1; else df['flag'] = -1.

Я использую это как простой способ узнать, двигалась ли цена акций в течение каждого скользящего периода.

Я пытался использовать выражение «если», но столкнулся с некоторыми проблемами, учитываяОшибка «истинное значение массива с более чем одним элементом»:

if df['Close'].rolling(window=60, min_periods=60).max().index.values > df['Close'].rolling(window=60, min_periods=60).max().index.values:
    df['flag'] = 1
else:
    df['flag'] = -1

Спасибо за помощь.

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