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

【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() 实现更复杂的时序分析。

http://www.xdnf.cn/news/7343.html

相关文章:

  • 24、钢铁厂峰谷电价策略优化分析 - /能源管理组件/steel-plant-tou-optimization
  • ngx_http_scgi_module 技术指南
  • Python60日基础学习打卡D30
  • 从技术层⾯来说深度SEO优化的⽅式有哪些?
  • CEF源码历史版本编译避坑指南
  • 基于 Keil 的 STM32 全模块开发
  • Windows系统编译Qt使用的kafka(librdkafka)
  • vue2、vue3项目打包生成txt文件-自动记录打包日期:git版本、当前分支、提交人姓名、提交日期、提交描述等信息 和 前端项目的版本号json文件
  • 47、C#可否对内存进⾏直接的操作?
  • 【Unity网络编程知识】Unity的 UnityWebRequest相关类学习
  • 测试自动化开发框架全解析
  • winfrom中创建webapi
  • VTK|显示三维图像的二维切片
  • 【2025最新】Spring Boot + Spring AI 玩转智能应用开发
  • WPF中资源(Resource)与嵌入的资源(Embedded Resource)的区别及使用场景详解
  • UE5在C++项目中判断不同平台
  • 调研函模板可参考,以无人机职业技能调研为例
  • RSA(公钥加密算法)
  • 机器学习(14)——模型调参
  • Redis 学习笔记 5:分布式锁
  • 软件工程-项目管理
  • 嵌入式(C语言篇)Day12
  • ubuntu 20.04 运行和编译LOAM_Velodyne
  • 智能呼叫中心系统的功能
  • 手机怎么查看网络ip地址?安卓/iOS设备查询指南
  • 基于小波包神经网络和D-S理论的滚动轴承故障诊断方法
  • Python:操作Excel按行写入
  • Spring Boot 与 RabbitMQ 的深度集成实践(四)
  • IDE 使用技巧与插件推荐
  • WEB安全--SQL注入--Oracle注入