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。
输出:
如输出中所示,前n个值总是等于NaN。其余的值等于旧值的百分比变化,并存储在与调用者系列相同的位置。
注意:由于第二个最后值是0,所以百分比变化是inf。
使用公式,pct_change= x-0/0 = 无限。
例子#2:处理空值
在这个例子中,一些空值也是用Numpy的np.nan方法创建的,并传递给列表。’bfill‘ 被传递给fill_method。bfill代表Back fill,它将用Null值的下一个位置的值来填充。
输出:
从输出中可以看出,位置1的值是40,因为NaN被14所取代。因此,(14-10/10)*100=40。接下来的值是0,因为14和14的百分比变化是0。