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 : 与调用对象的类型相同。 |
例子
1)计算相邻元素的百分比变化
import pandas as pd s = pd.Series([90, 91, 85]) print("原始 Series:") print(s) print("\n默认相邻变化(periods=1):") print(s.pct_change())
2)间隔两期(periods=2)的变化
import pandas as pd s = pd.Series([90, 91, 85]) print("原始 Series:") print(s) print("\n间隔两期(periods=2):") print(s.pct_change(periods=2))
3)含缺失值时的处理
使用 fill_method='ffill'
前向填充。
import pandas as pd s2 = pd.Series([90, 91, None, 85]) print("\n带缺失值的 Series:") print(s2) print("\n前向填充后的百分比变化:") print(s2.pct_change(fill_method='ffill'))
4)月度百分比变化
import pandas as pd 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'] ) print("原始汇率 DataFrame:") print(df) print("\n各货币按月份的百分比变化:") print(df.pct_change())
5)GOOG 和 APPL 库存量的列间百分比变化
import pandas as pd df_stock = pd.DataFrame({ '2016': [1769950, 30586265], '2015': [1500923, 40912316], '2014': [1371819, 41403351]}, index=['GOOG', 'APPL'] ) print("库存量 DataFrame:") print(df_stock) print("\n按列(年份)计算百分比变化(axis='columns'):") print(df_stock.pct_change(axis='columns'))