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

【Pandas】pandas DataFrame diff

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 中相邻行或列之间的差值(差分)

pandas.DataFrame.diff()

pandas.DataFrame.diff() 方法用于计算 DataFrame 中相邻行或列之间的差值(差分)。它常用于时间序列分析、趋势检测、数据变化监控等场景。


📌 方法签名:
DataFrame.diff(periods=1, axis=0)

🧾 参数说明:
参数类型描述
periodsint, 默认 1指定向前/向后移动的步数,正值表示当前行与前 periods 行相减,负值则相反。
axis{0/‘index’, 1/‘columns’}, 默认 0
  • 0'index':按行计算差分(默认)
  • 1'columns':按列计算差分 |

📊 返回值:

返回一个新的 DataFrame,其形状与原 DataFrame 相同,但第一组(根据 periods 大小)行或列的值为 NaN(因为没有对应的前一行/列进行差分运算)。


✅ 示例及结果:
示例1:默认参数(按行计算一阶差分)
import pandas as pddf = pd.DataFrame({'A': [10, 20, 15, 25, 30],'B': [100, 120, 110, 130, 140]
})print(df.diff())
输出结果:
      A     B
0   NaN   NaN
1  10.0  20.0
2  -5.0 -10.0
3  10.0  20.0
4   5.0  10.0

解释:

  • 默认 periods=1,即每行与上一行相减。
  • 第0行无前一行 → NaN

示例2:设置 periods=2(两阶差分)
print(df.diff(periods=2))
输出结果:
      A     B
0   NaN   NaN
1   NaN   NaN
2  -5.0  10.0
3  10.0  20.0
4  15.0  30.0

解释:

  • 当前行与前两行相减,因此前两行为 NaN

示例3:负 periods(未来行减当前行)
print(df.diff(periods=-1))
输出结果:
      A     B
0 -10.0 -20.0
1   5.0  10.0
2 -10.0 -20.0
3  -5.0 -10.0
4   NaN   NaN

解释:

  • 当前行与下一行相减(未来减现在),最后一行为 NaN

示例4:按列计算差分(axis=1
df_col = pd.DataFrame({'X': [1, 2, 3],'Y': [4, 5, 6],'Z': [7, 8, 9]
})print(df_col.diff(axis=1))
输出结果:
     X    Y     Z
0  NaN  3.0   3.0
1  NaN  3.0   3.0
2  NaN  3.0   3.0

解释:

  • 每列与前一列相减,因此第一列 X 全为 NaN

🎯 适用场景:
场景描述
时间序列分析计算每日/每月变化量,如销售额增长、温度变化等
趋势检测分析数据上升或下降的趋势
异常检测差分后突变值可能表示异常行为
特征工程构造新的特征(如变化率、增长率)

⚠️ 注意事项:
  • 只对数值型列有效,非数值列会被忽略
  • 差分后的结果中会包含 NaN 值(无法计算的部分)
  • 支持正负 periods,可灵活控制前后方向
  • 不会影响原始 DataFrame,返回新对象

📋 总结:
特性描述
功能计算 DataFrame 的行间或列间的差分
默认行为按行计算一阶差分(periods=1
是否修改原数据否,返回新 DataFrame
适用类型数值型列(int、float)
灵活性支持任意步长和方向(periodsaxis

diff() 是一个非常实用的数据变换工具,尤其适合处理时间序列和变化监测任务。

相关文章:

  • 语音识别——通过PyAudio录入音频
  • Linux线程控制
  • 【Pandas】pandas DataFrame eval
  • CertiK助力以太坊扩展战略,解析Pectra升级的变革与挑战
  • 5G + 区块链:技术巨浪下的新型数字生态!
  • 数字孪生工厂实战指南:基于Unreal Engine/Omniverse的虚实同步系统开发
  • 如何使用WordPress SEO检查器进行实时内容分析
  • 【OpenGL学习】(一)创建窗口
  • 边缘计算平台
  • Unity光照笔记
  • 如何使用 Google Gemini API 和 Python 从航行情报通告 (NOTAM) 中提取结构化空域信息
  • RiDoc:高效文档扫描与图像处理工具,助力高效办公
  • mavgenerate 在 win11 下环境搭建注意问题
  • Top-p采样:解锁语言模型的创意之门
  • Redis--基础知识点--27--redis缓存分类树
  • 【AI论文】用于评估和改进大型语言模型中指令跟踪的多维约束框架
  • K8S Gateway API 快速开始、胎教级教程
  • AD 区域规则(Room规则)的设置
  • Mac 环境下 JDK 版本切换全指南
  • C#中的typeof操作符与Type类型:揭秘.NET反射的基础
  • 赡养纠纷个案推动类案监督,检察机关保障特殊群体胜诉权
  • 国家卫健委通报:吊销肖某医师执业证书,撤销董某莹四项证书
  • 董军同德国国防部长举行会谈
  • 中央宣传部、全国妇联联合发布2025年“最美家庭”
  • 30平米的无障碍酒吧里,我们将偏见折叠又摊开
  • 远如《月球背面》,近似你我内心