📜  Python|熊猫系列.pct_change()

📅  最后修改于: 2022-05-13 01:55:24.590000             🧑  作者: Mango

Python|熊猫系列.pct_change()

Pandas pct_change() 方法应用于具有数字数据的系列,以计算 n 个元素后的百分比变化。默认情况下,它计算当前元素相对于前一个元素的百分比变化。 (当前-以前/以前)* 100。
首先, n(n=period) 值始终为NaN ,因为没有先前的值来计算变化。

示例 #1:
在此方法中,使用 Pandas Series() 从Python列表创建一个系列。该系列不包含任何空值,因此 pct_change() 方法直接使用period参数的默认值调用,即 1。

Python3
# importing pandas module
import pandas as pd
   
# importing numpy module
import numpy as np
   
# creating list
list = [10, 14, 20, 25, 12.5, 13, 0, 50]
 
# creating series
series = pd.Series(list)
 
# calling method
result = series.pct_change()
 
# display
result


Python3
# importing pandas module
import pandas as pd
   
# importing numpy module
import numpy as np
   
# creating list
list =[10, np.nan, 14, 20, 25, 12.5, 13, 0, 50]
 
# creating series
series = pd.Series(list)
 
# calling method
result = series.pct_change(fill_method ='bfill')
 
# display
result


输出:

0         NaN
1    0.400000
2    0.428571
3    0.250000
4   -0.500000
5    0.040000
6   -1.000000
7         inf
dtype: float64

如输出所示,前 n 个值始终等于 NaN。其余值等于旧值的百分比变化,并存储在与调用者序列相同的位置。
注意:由于倒数第二个值为 0,因此百分比变化为 inf。 inf 代表无限。
使用公式,pct_change= x-0/0 = Infinite示例 #2:处理 Null 值
在此示例中,还使用 Numpy 的 np.nan 方法创建了一些空值并将其传递给列表。 ' bfill ' 被传递给 fill_method。 bfill代表回填,它将在 Null 值的下一个位置填充值。

Python3

# importing pandas module
import pandas as pd
   
# importing numpy module
import numpy as np
   
# creating list
list =[10, np.nan, 14, 20, 25, 12.5, 13, 0, 50]
 
# creating series
series = pd.Series(list)
 
# calling method
result = series.pct_change(fill_method ='bfill')
 
# display
result

输出:

0         NaN
1    0.400000
2    0.000000
3    0.428571
4    0.250000
5   -0.500000
6    0.040000
7   -1.000000
8         inf
dtype: float64

从输出中可以看出,位置 1 的值为 40,因为 NaN 被 14 替换。因此,(14-10/10) *100 = 40。下一个值为 0,因为 14 和 14 的百分比变化为 0 .