pandas.Series.pct_change # 系列。pct_change ( period = 1 , fill_method = _NoDefault.no_default , limit = _NoDefault.no_default , freq = None , ** kwargs ) [来源] # 当前元素与先前元素之间的分数变化。 默认情况下计算与前一行相比的分数变化。这对于比较元素时间序列中的变化比例非常有用。 笔记 尽管此方法的名称如此,但它计算的是分数变化(也称为每单位变化或相对变化)而不是百分比变化。如果您需要百分比变化,请将这些值乘以 100。 参数: 周期int,默认 1形成百分比变化的转变周期。 fill_method {'backfill', 'bfill', 'pad', 'ffill', None}, 默认 'pad'如何在计算百分比变化之前处理 NA。 自版本 2.1 起已弃用:fill_method的所有选项均已弃用,除了fill_method=None。 limit int,默认无停止前要填充的连续 NA 的数量。 自 2.1 版本起已弃用。 freq DateOffset、timedelta 或 str,可选从时间序列 API 使用的增量(例如“ME”或 BDay())。 **夸格其他关键字参数被传递到 DataFrame.shift或Series.shift中。 返回: 系列或数据框与调用对象的类型相同。 也可以看看 Series.diff计算系列中两个元素的差异。 DataFrame.diff计算 DataFrame 中两个元素的差异。 Series.shift将索引移动一定数量的周期。 DataFrame.shift将索引移动一定数量的周期。 例子 系列 >>> 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 查看系列中的百分比变化,其中用最后一个有效观察值填充 NA 到下一个有效观察值。 >>> s = pd.Series([90, 91, None, 85]) >>> s 0 90.0 1 91.0 2 NaN 3 85.0 dtype: float64 >>> s.ffill().pct_change() 0 NaN 1 0.011111 2 0.000000 3 -0.065934 dtype: float64 数据框 1980年1月1日至1980年3月1日期间法国法郎、德国马克和意大利里拉的百分比变化。 >>> 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