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

Python实现两个DataFrame多条件匹配筛选异常值的方法

Pandas跨表匹配处理实现代码
import pandas as pd

# -------------------------- 示例测试数据(替换为你的实际df1、df2即可) --------------------------
df1 = pd.DataFrame({'Column A': ['CharlesBarkley', 'Michael Jordan']})
df2 = pd.DataFrame({
    'Column A': ['charles barkley', 'MichaelJordan'],
    'Column B': ['Yes', 'No']
})

# -------------------------- 核心处理逻辑 --------------------------
# 1. 对两个表的Column A做标准化:删除所有空格+统一转小写
df1['std_A'] = df1['Column A'].astype(str).str.replace(r'\s+', '', regex=True).str.lower()
df2['std_A'] = df2['Column A'].astype(str).str.replace(r'\s+', '', regex=True).str.lower()

# 2. 匹配+过滤:保留匹配成功、且df2 Column B为No的行
result_df = df2[(df2['std_A'].isin(df1['std_A'])) & (df2['Column B'] == 'No')].copy()

# 3. 新增Result列,保留所需输出字段
result_df['Result'] = 'Not Registered'
result_df = result_df[['std_A', 'Result']]

# 输出结果
print(result_df)

逻辑说明

  • 标准化处理时加入astype(str)避免列值非字符串时报错,\s+正则匹配所有任意数量的空白字符,比直接替换单个空格兼容性更强
  • 匹配逻辑用isin()实现两表标准化字段的对齐,过滤条件直接叠加布尔索引即可
  • copy()方法避免后续操作触发pandas链式赋值警告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:48:04