(编码题)有以下一个 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() 的参数。