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 。
相關用法
- Python pandas.map()用法及代碼示例
- Python Pandas Series.str.len()用法及代碼示例
- Python Pandas.factorize()用法及代碼示例
- Python Pandas TimedeltaIndex.name用法及代碼示例
- Python Pandas dataframe.ne()用法及代碼示例
- Python Pandas Series.between()用法及代碼示例
- Python Pandas DataFrame.where()用法及代碼示例
- Python Pandas Series.add()用法及代碼示例
- Python Pandas.pivot_table()用法及代碼示例
- Python Pandas Series.mod()用法及代碼示例
- Python Pandas Dataframe.at[ ]用法及代碼示例
- Python Pandas Dataframe.iat[ ]用法及代碼示例
- Python Pandas.pivot()用法及代碼示例
- Python Pandas dataframe.mul()用法及代碼示例
- Python Pandas.melt()用法及代碼示例
注:本文由純淨天空篩選整理自Kartikaybhutani大神的英文原創作品 Python | Pandas Series.pct_change()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。