pct_change()函数用于计算当前元素与前一个元素之间的百分比变化。其基本语法如下:

DataFrame.pct_change(periods=1, fill_method='pad', limit=None, freq=None, **kwargs)

参数说明

1、periods (默认值: 1):

计算百分比变化的间隔周期。

例如,periods=1 表示当前值与上一个值的变化率;periods=2 表示当前值与上上个值的变化率。

2、fill_method (默认值: 'pad'):处理缺失值的方法。

可选值:

'pad' 或 'ffill':用前一个非缺失值填充缺失值。

'bfill':用后一个非缺失值填充缺失值。

None:不填充缺失值。

3、limit (默认值: None):

指定填充缺失值的最大数量。

freq (默认值: None):

用于时间序列数据的频率字符串或 DateOffset 对象。

例如,freq='D' 表示按天计算变化率。

3、**kwargs:

其他传递给 fillna() 的参数。

示例

data = {
    'A': [100, 110, 120, 115, 130],
    'B': [200, 210, 220, 215, 230]
}
df = pd.DataFrame(data)

# 计算每列的百分比变化
pct_change = df.pct_change()
print(pct_change)

输出

0         NaN
1    0.000000
2    0.200000
3   -0.041667
4    0.130435
dtype: float64

缺失值处理注意事项:

如果数据中存在缺失值,pct_change() 的结果中也会包含 NaN。

可以通过 fill_method 参数指定填充缺失值的方法。

第一个值为 NaN:

由于第一个值没有前一个值可以计算变化率,因此结果中的第一个值总是 NaN。

负值处理:

如果数据中包含负值,百分比变化的结果可能不太直观,需要根据具体场景解释。