pandas.DataFrame.pct_change#
- DataFrame.pct_change(periods=1, fill_method='pad', limit=None, freq=None, **kwargs)[源代码]#
当前元素和前一个元素之间的百分比变化。
默认情况下,计算上一行的更改百分比。这在比较元素的时间序列中的变化百分比时很有用。
- 参数
- periods整型,默认值为1
为形成百分比变化而转换的期间。
- fill_method字符串,默认‘Pad’
如何处理NAS 在此之前 计算百分比变化。
- limitInt,默认为无
停止前要填充的连续NAS数。
- freqDateOffset、TimeDelta或str,可选
从时间序列API使用的增量(例如M‘或BDay())。
- **kwargs
其他关键字参数被传递到 DataFrame.shift 或 Series.shift 。
- 退货
- chg系列或DataFrame
与调用对象相同的类型。
参见
Series.diff
计算级数中两个元素的差值。
DataFrame.diff
计算DataFrame中两个元素的差值。
Series.shift
将索引移动一定数量的期间。
DataFrame.shift
将索引移动一定数量的期间。
示例
Series
>>> s = pd.Series([90, 91, 85]) >>> s 0 90 1 91 2 85 dtype: int64
>>> s.pct_change() 0 NaN 1 0.011111 2 -0.065934 dtype: float64
>>> s.pct_change(periods=2) 0 NaN 1 NaN 2 -0.055556 dtype: float64
查看系列中的百分比变化,在该系列中,将上一个有效观测向前填充到下一个有效。
>>> s = pd.Series([90, 91, None, 85]) >>> s 0 90.0 1 91.0 2 NaN 3 85.0 dtype: float64
>>> s.pct_change(fill_method='ffill') 0 NaN 1 0.011111 2 0.000000 3 -0.065934 dtype: 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 IT 1980-01-01 4.0405 1.7246 804.74 1980-02-01 4.0963 1.7482 810.01 1980-03-01 4.3149 1.8519 860.13
>>> df.pct_change() FR GR IT 1980-01-01 NaN NaN NaN 1980-02-01 0.013810 0.013684 0.006549 1980-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 2014 GOOG 1769950 1500923 1371819 APPL 30586265 40912316 41403351
>>> df.pct_change(axis='columns', periods=-1) 2016 2015 2014 GOOG 0.179241 0.094112 NaN APPL -0.252395 -0.011860 NaN