数据框选定部分的乘法

Multiplication of selected part of a Dataframe

我目前正在清理一个由不同价格时间序列的股票组成的金融数据集。一些时间序列包括所谓的 "Stock Split",这意味着份额数量发生了变化。举个例子:下图股票数量在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

下一步,我需要将 df 中 0:df_loc 的所有值乘以 0.5。我使用以下方法失败了:

df = df.replace([df["A"].iloc[:df_loc]], df*2)

有谁知道如何解决这个问题?我认为这应该很容易,但我就是想不通。提前致谢

您可能想要这样做。

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