如何计算前一天减去前一天,然后除以前一天来计算Dataframe中的百分比



我有一个数据帧,如下所示:

2021-11-02 462.0800 464.0500 461.9200 463.76 32796942021-11-03 463.1400 466.9700 462.6800 466.61 29161302021-11-04 467.2100 468.8600 466.8400 468.75 30399332021-11-05 471.1801 472.5400 468.7900 470.40 43610652021-11-08 471.5700 472.1000 470.0800 470.89 2962977

我需要计算前一天减去开放列中的前一天,然后除以前一天来计算百分比。

我写的代码如下:

df['open_perc'] = (df['open']-df['open'].shift(1))/df['open'].shift(1) + 1

这是输出:

打开高-低-关闭音量打开_perc2021-11-02 462.0800 464.0500 461.9200 463.76 3279694 NaN2021-11-03 463.1400 466.9700 462.6800 466.61 2916130 1.0022942021-11-04 467.2100 468.8600 466.8400 468.75 3039933 1.0087882021-11-05 471.1801 472.5400 468.7900 470.40 4361065 1.0084972021-11-08 471.5700 472.1000 470.0800 470.89 2962977 1.000827

然而,我想得到"1〃;代替";NaN";第一天。我应该如何更改代码?

如果你确信你没有其他nan值,那么简单地:

df = df.fillna(1)

如果您不确定上述内容,则可以创建临时列:例如

df['shifted'] = df['open'].shift(1)
df.loc[(df.index == 0),'shifted'] = 1

然后继续进行百分比计算

最新更新