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

如何根据trigger倍数匹配DataFrame中B列最近值对应的A列值?

解决方案

步骤1:构建示例DataFrame

先按照需求创建示例中的dfA:

import pandas as pd

trigger = 100
# 生成足够覆盖3倍trigger的i范围
i_values = range(1, 81)
dfA = pd.DataFrame({
    'A': [i * 10 for i in i_values],
    'B': [i * 3.78 for i in i_values]
})

步骤2:生成目标值列表

创建trigger的1、2、3倍目标值:

targets = [trigger * multiplier for multiplier in (1, 2, 3)]

步骤3:匹配最接近值并提取A列数据

遍历每个目标值,计算B列与目标值的绝对差,找到差值最小的行,再取出对应A列的值:

result = []
for target in targets:
    # 找到B列中与目标值最接近的行索引
    closest_row_idx = (dfA['B'] - target).abs().idxmin()
    # 提取对应A列的值
    result.append(dfA.loc[closest_row_idx, 'A'])

print(result)  # 输出: [260, 530, 790]

补充说明

  • 如果B列存在多个与目标值差值相同的最小值,idxmin()会返回第一个出现的行索引
  • 若需要扩展到更多倍数(比如4倍、5倍),只需修改targets列表中的乘数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:25:14