Для таймсерий цен акций я применил 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](https://i.stack.imgur.com/hfZ8B.png)
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
введите описание изображения здесь