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

Pandas匹配两个DataFrame首列值完成自定义计算的最优实现方法

解决方案

直接用Pandas原生的merge左连接实现,是完全向量化的操作,效率远高于手动遍历,实现步骤如下:

步骤1:提取参数表所需字段

先从param表中仅保留计算需要的关联键和参数字段,避免冗余字段进入主表:

# 提取需要的参数列
param_use = param[['Transducer_ID', 'xd_zero_reading', 'gage_factor']]

步骤2:关联两个表

按Logger Name和Transducer_ID的匹配关系,将参数左连接到data表中:

# 左连接保证data的所有行都被保留
data_merged = data.merge(
    param_use,
    how='left',
    left_on='Logger Name',
    right_on='Transducer_ID'
)

步骤3:按公式计算Linear P列

直接用关联后的字段做向量化计算:

# 按给定公式计算
data_merged['Linear P'] = (data_merged['xd_zero_reading'] - data_merged['Sensor Reading(dg)']) * data_merged['gage_factor'].abs()

# 如果不需要保留关联过来的xd_zero_reading、gage_factor、Transducer_ID列,可以手动删除
data_merged = data_merged.drop(columns=['Transducer_ID', 'xd_zero_reading', 'gage_factor'])

结果验证

你给出的示例中,TDX对应的xd_zero_reading为9138、gage_factor绝对值为0.04135,第一行的计算结果为(9138 - 8772.737) * 0.04135 ≈ 15.103625,和你给出的预期输出完全一致。

这种方案是Pandas处理多表关联计算的标准实现,即使数据量达到百万级也能在秒级完成计算,不需要任何循环遍历操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:45:03