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

如何使用Pandas比较两列数值是否相近并删除对应行

Pandas 两列数值相近行删除实现方案

你描述的需求可以直接通过 Pandas 布尔索引实现,无需额外的特殊内置函数,完全适配你提到的「A值处于B值±15%范围内则删除」的判断规则。

完整实现代码

import pandas as pd

# 构造你提供的示例DataFrame
df = pd.DataFrame(
    data={'A': [3.21, 6.98, 5.41, 0.32], 'B': [3.15, 2.07, 8.95, 0.30]},
    index=[1, 2, 3, 4]
)

# 核心筛选逻辑:取反删除符合「A在B的±15%区间」的行
df_filtered = df[~((df['A'] >= df['B'] * 0.85) & (df['A'] <= df['B'] * 1.15))]

# 输出结果
print(df_filtered)

代码逻辑说明

  • 括号内的(df['A'] >= df['B'] * 0.85) & (df['A'] <= df['B'] * 1.15)会逐行判断A列值是否落在对应行B值的±15%区间内,返回布尔序列
  • 符号~代表布尔值取反,即保留所有不符合删除条件的行

运行结果

A     B
2  6.98  2.07
3  5.41  8.95

和你预期保留的行完全一致。如果后续需要调整阈值,只需要修改0.85和1.15两个系数即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:15:08