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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。