Умножение выделенной части кадра данных - PullRequest
0 голосов
/ 25 марта 2020

В настоящее время я очищаю финансовый набор данных, составленный из различных ценовых рядов акций. Некоторые из временных рядов включают в себя так называемый «разделение акций», это означает, что количество акций изменилось. Чтобы привести пример: количество акций нижеприведенных акций было в два раза в 2017 году

enter image description here

Чтобы исправить эту проблему, я хотел бы умножить целых временных рядов до этого сплит-события с 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)

Кто-нибудь знает, как решить эту проблему? Я думаю, что это должно быть довольно легко, но я просто не могу понять это. Заранее спасибо

1 Ответ

1 голос
/ 25 марта 2020

Возможно, вы захотите сделать это.

df.loc[:df_loc, 'price'] *= 0.5
...