pandas习题 040:初始值按40计算变化百分比

时间:2025-04-06 16:04:31

(编码题)有以下一个 Series,需要计算所在值的变化百分比和值,其中第一个值所在的位置由于没有初始值会为 NaN,请将初始值按 40 计算。

mport pandas as pd

ser = pd.Series([20, 30, 2, 5, 10])
ser
'''
0    20
1    30
2     2
3     5
4    10
dtype: int64
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

结果即:

'''
0    -50.000000
1     50.000000
2    -93.333333
3    150.000000
4    100.000000
dtype: float64
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
pandas 代码如下:

ser.pct_change(fill_value=40).mul(100)
'''
0    -50.000000
1     50.000000
2    -93.333333
3    150.000000
4    100.000000
dtype: float64
'''

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

解析:pct_change() 方法中的 fill_value 参数是 pct_change() 的底层方法 shift() 的参数。