當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。