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

如何使用Pandas判断多列单元格值是否存在于另一张表的指定列中

Python Pandas 匹配判断解决方案

实现逻辑

  • 将表1的参考水果列表转为集合,使用集合的O(1)查询特性提升匹配效率,适配300行参考数据的场景
  • 自动筛选表2中所有Fruit开头的列,无需手动枚举列名,适配最多40列的实际业务场景
  • 逐行校验所有Fruit列的取值,只要有任意值存在于参考集合中即标记为Yes,否则标记为No

完整代码

import pandas as pd

# ---------------------- 示例数据构造 实际使用时替换为你自己的读表代码即可 ----------------------
# 读表1参考水果列表,示例构造如下
df1 = pd.DataFrame({
    'Fruits': ['apple', 'orange', 'grape', 'melon']
})
# 读表2待匹配数据,示例构造如下
df2 = pd.DataFrame({
    'Name': ['Mike', 'Bob', 'Jack', 'Rob', 'Rita'],
    'Fruit 1': ['apple', 'peach', 'banana', 'peach', 'apple'],
    'Fruit 2': ['', 'pear', '', 'banana', 'orange'],
    'Fruit 3': ['', 'orange', '', '', 'banana']
})
# -----------------------------------------------------------------------------------------

# 1. 生成参考水果集合
ref_fruit_set = set(df1['Fruits'].dropna().unique())

# 2. 自动筛选所有需要判断的Fruit列
check_cols = [col for col in df2.columns if col.startswith('Fruit')]

# 3. 生成判断列
df2['Contains Fruits Table 2?'] = df2[check_cols].apply(
    lambda row: 'Yes' if any(row.isin(ref_fruit_set)) else 'No',
    axis=1
)

# 输出结果
print(df2)

输出结果验证

运行后输出的结果和示例完全一致:

NameFruit 1Fruit 2Fruit 3Contains Fruits Table 2?
MikeappleYes
BobpeachpearorangeYes
JackbananaNo
RobpeachbananaNo
RitaappleorangebananaYes

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:00