当前位置: 首页 > news >正文

【Pandas】pandas DataFrame pct_change

Pandas2.2 DataFrame

Computations descriptive stats

方法描述
DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值
DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 True
DataFrame.any(*[, axis, bool_only, skipna])用于判断 DataFrame 中是否至少有一个元素在指定轴上为 True
DataFrame.clip([lower, upper, axis, inplace])用于截断(限制)DataFrame 中的数值
DataFrame.corr([method, min_periods, …])用于计算 DataFrame 中各列之间的相关系数矩阵(Correlation Matrix)
DataFrame.corrwith(other[, axis, drop, …])用于计算当前 DataFrame 的每一列(或行)与另一个 Series 或 DataFrame 中对应列的相关系数
DataFrame.count([axis, numeric_only])用于统计 DataFrame 中每列或每行的非空(非 NaN)元素数量
DataFrame.cov([min_periods, ddof, numeric_only])用于计算 DataFrame 中每对列之间的协方差
DataFrame.cummax([axis, skipna])用于计算 DataFrame 中每列或每行的累计最大值(cumulative maximum)
DataFrame.cummin([axis, skipna])用于计算 DataFrame 中每列或每行的累计最小值(cumulative minimum)
DataFrame.cumprod([axis, skipna])用于计算 DataFrame 中每列或每行的累计乘积(cumulative product)
DataFrame.cumsum([axis, skipna])用于计算 DataFrame 中每列或每行的累计和(cumulative sum)
DataFrame.describe([percentiles, include, …])用于快速生成数据集的统计摘要(summary statistics)
DataFrame.diff([periods, axis])用于计算 DataFrame 中相邻行或列之间的差值(差分)
DataFrame.eval(expr, *[, inplace])用于在 DataFrame 上下文中高效地执行字符串形式的表达式运算
DataFrame.kurt([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.kurtosis([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.max([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的最大值(maximum)
DataFrame.mean([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的平均值(mean)
DataFrame.median([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的中位数(median)
DataFrame.min([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的最小值(minimum)
DataFrame.mode([axis, numeric_only, dropna])用于查找 众数(出现频率最高的值) 的方法
DataFrame.pct_change([periods, fill_method, …])用于计算 百分比变化 的方法

pandas.DataFrame.pct_change()

pandas.DataFrame.pct_change() 是 Pandas 中用于计算 百分比变化 的方法,通常用于时间序列数据或面板数据中的增长率分析。它返回一个新的 DataFrame,表示当前元素与先前元素之间的百分比变化。


语法
DataFrame.pct_change(periods=1, fill_method='pad', limit=None, freq=None, **kwargs)

参数说明
参数类型默认值描述
periodsint1计算变化的间隔(向前看几个周期)
fill_methodstr'pad'填充缺失值的方法:
- 'pad' / 'ffill': 向前填充
- 'bfill' / 'backfill': 向后填充
- None: 不填充
limitintNone填充的最大连续 NaN 数量
freqDateOffset, timedelta, 或 strNone如果是时间序列数据,可以指定频率(如 'D', 'M' 等)
**kwargsdict其他可选参数

返回值
  • 返回一个与原 DataFrame 形状相同的 DataFrame,表示每个元素相对于前 periods 个元素的百分比变化。
  • n 行的值为:(current / previous) - 1
  • 初始 periods 行会是 NaN,因为没有足够的历史数据进行比较。

示例
示例数据:
import pandas as pddf = pd.DataFrame({'A': [10, 20, 30, 40],'B': [100, 150, 200, 250]
})

输出原始数据:

    A    B
0  10  100
1  20  150
2  30  200
3  40  250

示例 1:默认参数(计算相邻行的百分比变化)
df.pct_change()

结果:

          A         B
0       NaN       NaN
1  1.000000  0.500000
2  0.500000  0.333333
3  0.333333  0.250000

解释:

  • 第一行无法计算变化,因此为 NaN
  • 第二行 A: (20/10)-1 = 1.0,B: (150/100)-1 = 0.5

示例 2:设置 periods=2(与两行前的数据对比)
df.pct_change(periods=2)

结果:

          A         B
0       NaN       NaN
1       NaN       NaN
2  2.000000  1.000000
3  1.000000  0.666667

解释:

  • 第三行 A: (30/10)-1 = 2.0,B: (200/100)-1 = 1.0
  • 前两行无法计算,因此为 NaN

示例 3:使用 fill_method 填充 NaN
df.pct_change(fill_method='bfill')

结果:

          A         B
0  1.000000  0.500000
1  1.000000  0.500000
2  0.500000  0.333333
3  0.333333  0.250000

解释:

  • 使用 bfill 填充第一个 NaN 行(向后填充)

注意事项
  • pct_change() 常用于金融数据分析、增长率分析等场景。
  • 支持处理 NaN 值(通过 fill_method 控制是否填充)。
  • 可结合 resample()rolling() 实现更复杂的时序分析。

相关文章:

  • 基础知识:Python类里面的@property装饰器的作用
  • 909. 蛇梯棋
  • NODEEDITOR
  • idea 安装飞算-javaAI 插件使用
  • AG-UI 协议是什么?MCP、A2A 后,AI 领域又新增 AG-UI 协议
  • 初识 java
  • Kubernetes in action-配置和应用升级
  • 关于 Web 漏洞原理与利用:2. XSS(跨站脚本攻击)
  • 斜齿轮直列齿轮箱市场分析报告:驱动因素、挑战及前景预测
  • 初学c语言16(内存函数)
  • 【Fine-Tuning】大模型微调高阶技术点概要
  • 【Unity】Unity中将字典序列化
  • YOLO模型predict(预测/推理)的参数设置
  • Java集合框架解析:从基础到底层源码
  • 题目练习之综合运用
  • 【PhysUnits】4.4 零类型(Z0)及其算术运算(zero.rs)
  • 《解锁具身智能社交密码:文化适配算法探秘》
  • 小目标检测层优化+多模态数据增强——YOLOv5在油气管道环焊缝缺陷识别的创新应用
  • SymPy | 隐函数导数求解:从基础到高阶的完整指南
  • 卓力达手撕垫片:精密制造的创新解决方案与多领域应用
  • 每日475.52元!最高检公布侵犯公民人身自由最新赔偿金标准
  • 无人机考证热背后:掏空年轻人钱包,养肥培训机构
  • 多名幼师殴打女童被行拘后续,盘锦市教育局工作人员:该局将专项整治全市幼儿园
  • 专访|金七猫奖得主:以非遗为舟,在现实题材中疗愈与成长
  • 中美贸易代表会谈后是否已确定下一次会谈?外交部回应
  • 牛市早报|上市公司重大资产重组新规出炉,4月经济数据将公布