DataFrame.pct_change(self: ~FrameOrSeries, periods=1, fill_method='pad', limit=None, freq=None, **kwargs) → ~FrameOrSeries [source]
当前元素与先前元素之间的百分比变化。
默认情况下,计算与前一行的百分比变化。这在比较元素时间序列中的变化百分比时很有用。
参数: | periods : 形成百分比变化所需的时间。 fill_method : 如何在计算百分比更改之前处理NAs limit : 停止前要填充的连续NAs的数量。 freq : 时间序列API开始使用的增量(例如, **kwargs 其他关键字参数将传递到 |
返回值: | chg : 与调用对象的类型相同。 |
例子
Series
>>> s = pd.Series([90, 91, 85])>>> s0 901 912 85dtype: int64
>>> s.pct_change()0 NaN1 0.0111112 -0.065934dtype: float64
>>> s.pct_change(periods=2)0 NaN1 NaN2 -0.055556dtype: float64
看到Series中的百分比变化,其中用最后一个有效观察值填充到下一个有效观察值来填充NA
>>> s = pd.Series([90, 91, None, 85])>>> s0 90.01 91.02 NaN3 85.0dtype: float64
>>> s.pct_change(fill_method='ffill')0 NaN1 0.0111112 0.0000003 -0.065934dtype: float64
DataFrame
从1980-01-01到1980-03-01的法郎,德国马克和意大利里拉的百分比变化
>>> df = pd.DataFrame({... 'FR': [4.0405, 4.0963, 4.3149],... 'GR': [1.7246, 1.7482, 1.8519],... 'IT': [804.74, 810.01, 860.13]},... index=['1980-01-01', '1980-02-01', '1980-03-01'])>>> df FR GR IT1980-01-01 4.0405 1.7246 804.741980-02-01 4.0963 1.7482 810.011980-03-01 4.3149 1.8519 860.13
>>> df.pct_change() FR GR IT1980-01-01 NaN NaN NaN1980-02-01 0.013810 0.013684 0.0065491980-03-01 0.053365 0.059318 0.061876
GOOG和APPL库存量变化的百分比。显示计算列之间的百分比变化
>>> df = pd.DataFrame({... '2016': [1769950, 30586265],... '2015': [1500923, 40912316],... '2014': [1371819, 41403351]},... index=['GOOG', 'APPL'])>>> df 2016 2015 2014GOOG 1769950 1500923 1371819APPL 30586265 40912316 41403351
>>> df.pct_change(axis='columns') 2016 2015 2014GOOG NaN -0.151997 -0.086016APPL NaN 0.337604 0.012002