Python 使用最后一个非 NA 值计算百分比变化



我对python很陌生(主要是我使用R),我想执行一个简单的计算,但总是得到错误和不正确的结果。我想使用最新的非 na 值计算熊猫 df 中列的百分比变化。 下面是一个玩具示例。

price = ['Nan', 10, 13, 'NaN', 'NaN', 9]
df = pd.DataFrame(price, columns = ['price'])
df['price_chg'] = df.price.pct_change(periods = -1)

我不断得到一个奇怪的结果:

price_chg = [Nan, -0.2307, 0, 0, 0.4444, NaN] 

我想这与楠的价值观有关。 如何告诉 python 使用最新的非 na 值。 期望的结果如下:

price_chg = [Nan, -0.2307, 0.4444, 0, 0, NaN]

由于我根本不了解 python,因此欢迎任何建议,甚至是更复杂的建议。

我相信

您正在寻找的是调用pct_change函数时使用回填。

df['price_chg'] = df.price.pct_change(periods = -1, fill_method='backfill')

这导致:

1   -0.230769
2    0.444444
3    0.000000
4    0.000000
5         NaN

本页介绍调用 pct_change 时的选项,包括fill_method 。您可以在此处了解有关熊猫中可用的填充方法的更多信息

最新更新