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

如何基于部分匹配合并Pandas DataFrame并解决匹配异常

问题分析与解决方案

首先,你的代码逻辑走偏了——你把标准关键词拆成单个单词去匹配,再拼接成新的字符串,这就导致拼接后的内容和Standard_Data里的完整关键词完全对不上,自然merge的时候找不到对应的工单(TICKET),出现NaN异常。

举个例子:Standard_Data里的关键词是wires stop passing traffic,你的代码会把它拆成单个单词,然后从文本里提取出stop、passing、traffic,拼接成stop passing traffic,但Standard_Data里根本没有这个关键词,所以merge时自然匹配不到对应的TICKET=60245,反而生成了无效的NaN行。

修正后的思路

我们需要直接检查完整的关键词短语(或其连续子串)是否出现在文本中,然后把每个匹配到的关键词和对应的文本、工单关联起来,而不是拆单词拼接。

修正后的代码

import pandas as pd

# 读取标准关键词与工单数据(对应你的df1)
Standard_Data = pd.read_excel('bOOK2.xlsx', usecols=[0,1])
# 读取待匹配的文本数据(对应你的df2)
input_data = pd.read_excel('book1.xlsx', usecols=[1])
# 统一列名,避免大小写/拼写不一致的问题
input_data.columns = ['TEXT_DATA']

# 初始化结果DataFrame
result = pd.DataFrame(columns=['KEYWORD', 'TEXT_DATA', 'TICKET'])

# 遍历每一条待匹配文本
for _, text_row in input_data.iterrows():
    current_text = text_row['TEXT_DATA']
    # 找出所有匹配的关键词:
    # 规则是:要么完整关键词出现在文本中,要么关键词的连续子串(至少2个单词)出现在文本中
    matched_keywords = Standard_Data[
        Standard_Data['KEYWORD'].apply(
            lambda kw: 
            # 检查完整关键词是否在文本中
            kw in current_text 
            # 检查关键词的连续多单词子串是否在文本中
            or any(
                ' '.join(kw.split()[i:i+n]) in current_text 
                for n in range(2, len(kw.split())+1) 
                for i in range(len(kw.split()) - n + 1)
            )
        )
    ]
    # 把当前文本关联到匹配的关键词行
    matched_keywords['TEXT_DATA'] = current_text
    # 合并到结果中
    result = pd.concat([result, matched_keywords[['KEYWORD', 'TEXT_DATA', 'TICKET']]], ignore_index=True)

# 打印最终结果
print(result)

运行结果

这段代码会输出你期望的结果:

KEYWORD                                        TEXT_DATA  TICKET
0    Burst of bit errors  Burst of bit errors due to stop passing traffic   89814
1  wires stop passing traffic  Burst of bit errors due to stop passing traffic   60245

关键调整点

  1. 匹配逻辑修正:不再拆单词,而是直接检查完整关键词或其连续子串是否存在于文本中,确保和Standard_Data里的关键词完全对应。
  2. 数据关联方式:遍历每个文本,找出所有匹配的关键词,再将每个关键词与文本、工单一一对应,避免merge时的不匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:37:47