pandas.DataFrame.pct_change() 是 Pandas 中用来 计算百分比变化(即相邻行之间的增长率) 的方法,常用于金融、时间序列等领域。用于股票收益率计算,成本/收入增长率分析,时间序列数据相对变化率计算。本文主要介绍一下Pandas中pandas.DataFrame.pct_change方法的使用。

DataFrame.pct_change(self: ~FrameOrSeries, periods=1, fill_method='pad', limit=None, freq=None, **kwargs) → ~FrameOrSeries     [source]

当前元素与先前元素之间的百分比变化。

默认情况下,计算与前一行的百分比变化。这在比较元素时间序列中的变化百分比时很有用。

参数

periods :int, 默认为 1

形成百分比变化所需的时间。

fill_method :str, 默认为‘pad’

如何在计算百分比更改之前处理NAs

limit :int, 默认为 None

停止前要填充的连续NAs的数量。

freq DateOffset, timedelta, 或 str(可选)

时间序列API开始使用的增量(例如,"M"BDay())。

**kwargs

其他关键字参数将传递到 DataFrame.shiftSeries.shift中。

返回值

chg :SeriesDataFrame

与调用对象的类型相同。

例子

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

推荐文档

相关文档

大家感兴趣的内容

随机列表