В настоящее время я очищаю финансовый набор данных, составленный из различных ценовых рядов акций. Некоторые из временных рядов включают в себя так называемый «разделение акций», это означает, что количество акций изменилось. Чтобы привести пример: количество акций нижеприведенных акций было в два раза в 2017 году
Чтобы исправить эту проблему, я хотел бы умножить целых временных рядов до этого сплит-события с 0,5. Для этого я сделал следующее. df - это фрейм данных с разными акциями, а «A» - это только один временной ряд.
# searching for the stock split
df_return = df["A"].pct_change(1) # calculate returns
df_loc = df_return["A"].index.get_loc(df_return["A"].idxmin()) # get "location" of stock split
В качестве следующего шага мне нужно умножить все значения с 0: df_lo c в df на 0,5. Я потерпел неудачу с такими подходами, как:
df = df.replace([df["A"].iloc[:df_loc]], df*2)
Кто-нибудь знает, как решить эту проблему? Я думаю, что это должно быть довольно легко, но я просто не могу понять это. Заранее спасибо