当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas Series.pct_change()用法及代码示例


Pandas pct_change()方法对具有数值数据的序列应用,以计算n个元素后的百分比变化。默认情况下,它计算当前元素与前一个元素的百分比变化。 (Current-Previous /Previous)* 100。

首先,n(n = period)值始终为NaN,因为没有先前的值可以计算变化。

用法:Series.pct_change(periods=1, fill_method=’pad’, limit=None)

参数:
periods:定义当前值与先前值之间的差距。默认为1
fill_method:定义用于处理空值的方法
limit:停止前要填充的连续NaN值的数量。

返回类型:百分比变化的数值系列

范例1:

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

# 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

输出:

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 =无限


范例2:处理空值

在此示例中,还使用Numpy的np.nan方法创建了一些空值并将其传递到列表。 “填充”传递给fill_method填充代表“回填”,并将在空值的下一个位置填充空值。

# 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 。



相关用法


注:本文由纯净天空筛选整理自Kartikaybhutani大神的英文原创作品 Python | Pandas Series.pct_change()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。