Python Pandas Series.pct_change()

Python Pandas Series.pct_change()

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

语法: Series.pct_change(periods=1, fill_method=’pad’, limit=None)
参数:
periods:定义了当前值和前值之间的差距。默认为1
fill_method:定义了用于处理空值的方法。
limit:在停止之前连续填充NaN值的数量。
回报类型:带有百分比变化的数字系列

示例 #1:
在这个方法中,使用Pandas Series()从Python列表中创建一个系列。这个系列不包含任何空值,因此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。
使用公式,pct_change= x-0/0 = 无限。

例子#2:处理空值
在这个例子中,一些空值也是用Numpy的np.nan方法创建的,并传递给列表。’bfill‘ 被传递给fill_method。bfill代表Back fill,它将用Null值的下一个位置的值来填充。

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程