You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在pandas中计算Sensor ID顺序不匹配的两个DataFrame差值的最优方法

最优实现方案

利用Pandas原生的索引自动对齐特性是最优解法,无需手动排序、匹配ID,时间复杂度是Pandas底层优化过的O(n)级别,代码也最简洁:

  • 先将两个DataFrame的Sensor ID字段设为索引,触发自动对齐规则
  • 直接对两个设置好索引的DataFrame做减法,Pandas会自动匹配相同Sensor ID的行计算数值差
  • 最后可根据需要重置索引,将Sensor ID变回普通列,并重命名列区分差值含义
import pandas as pd

# 1. 设置索引,按Sensor ID对齐
df1 = df1.set_index("Sensor ID")
df2 = df2.set_index("Sensor ID")

# 2. 直接相减,自动匹配相同ID的行计算差值
diff_df = df2 - df1

# 3. 可选:重置索引,重命名列明确差值定义(此处为DF2减DF1的结果)
diff_df = diff_df.reset_index().rename(columns={
    "Reference Pressure": "Reference Pressure Diff (DF2-DF1)",
    "Sensor Pressure": "Sensor Pressure Diff (DF2-DF1)"
})

特殊场景兼容:如果两个DataFrame存在各自独有的Sensor ID,可指定填充值避免出现空值,示例如下:

# 独有ID的缺失读数默认按0计算差值,也可根据业务需求修改fill_value的取值
diff_df = df2.sub(df1, fill_value=0).reset_index()

内容的提问来源于stack exchange,提问作者OP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:18:03