Получить индекс результатов по Pandas Rolling_max, примененный к другому столбцу - PullRequest
0 голосов
/ 21 июня 2020

Для таймсерий цен акций я применил Rolling_max к «Скор. Закрытие» для столбца «Максимум за 52 недели». Я хотел бы иметь еще один столбец «52 недели High Date», чтобы показать дату, когда был достигнут скользящий максимум «52 недели High». Благодарю за помощь в коде для этого. Спасибо.

import pandas as pd
import pandas_datareader as pdr
import datetime
from datetime import date, timedelta

start = datetime.datetime(2015,1,1) # yyyy, m, d
df_0700 = pdr.DataReader('0700.HK', 'yahoo', start=start)

df_0700['52 weeks High'] = df_0700['Adj Close'].asfreq('D').rolling(window=52*7, min_periods=1).max()

I получил ошибку при попытке под двумя кодами;

df_0700['52 weeks High Date'] = df_0700[df_0700['Adj Close'].asfreq('D').rolling(window=52*7, min_periods=1).max()].index

df_0700['52 weeks High Date'] = np.where(df_0700['Adj Close'].rolling(window=52*7, min_periods=1).max().index.values)

enter image description here

I tried the below code and it seem to give the desired data but just wondering if there's any better / efficient way

for i in range(len(df_0700)):
    df_0700['52 weeks High Date'][i] = df_0700[ df_0700['Adj Close'] == df_0700['52 weeks High'][i] ].index

введите описание изображения здесь

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