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

如何检测两列数据是否包含部分相似字符串并生成结果列

两列字符串部分匹配判断及结果列生成方案

数据示例

LocationNameResult
Sherman OaksOaks1
Beverly driveSherman way0
Hollywood BlvdHollywood1
3rd StreetMain0
VenturaPark Ave0
Palm Springs空值0

方案1:Excel公式实现

在Result列第一行(假设数据从第2行开始)输入以下公式,下拉填充即可完成批量判断:

=IF(OR(ISBLANK(A2),ISBLANK(B2)),0,IF(OR(ISNUMBER(SEARCH(TRIM(B2),TRIM(A2))),ISNUMBER(SEARCH(TRIM(A2),TRIM(B2)))),1,0))
  • TRIM:去除字符串首尾空格,避免空格干扰匹配判断
  • SEARCH:检测一个字符串是否包含另一个,不区分大小写
  • ISNUMBER:判断SEARCH是否找到匹配结果(找到返回数字,否则返回错误值)
  • ISBLANK:处理任意一列为空值的情况,直接返回0

方案2:Python Pandas实现

适合大数据量的批量处理场景,代码逻辑如下:

import pandas as pd

# 构造示例数据
data = {
    'Location': ['Sherman Oaks', 'Beverly drive', 'Hollywood Blvd', '3rd Street', 'Ventura', 'Palm Springs'],
    'Name': ['Oaks', 'Sherman way', 'Hollywood', 'Main', 'Park Ave', pd.NA]
}
df = pd.DataFrame(data)

# 定义匹配判断函数
def check_partial_match(row):
    loc = str(row['Location']).strip()
    name = str(row['Name']).strip()
    # 处理空值/NaN情况
    if pd.isna(row['Name']) or name == 'NaN' or name == '':
        return 0
    # 判断双向包含关系
    return 1 if (name in loc) or (loc in name) else 0

# 生成Result列
df['Result'] = df.apply(check_partial_match, axis=1)
print(df)

执行后会直接生成包含Result列的DataFrame,自动处理空值和部分匹配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:46:06