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'))