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

基于Pandas实现相似词匹配并生成新列的技术需求

Pandas核心词匹配:适配带符号/后缀的名称场景

当前代码的c in x子串匹配逻辑无法精准满足需求——它可能漏匹配前缀核心词(如KCE13P2302A需同时匹配K和KCE),或误匹配非核心的中间子串。我们需要调整逻辑,只提取作为前缀或被符号分割的独立部分的核心词。

解决方案代码

import pandas as pd
import re

list20 = ['ZEN', 'OOP', 'WICE', 'XO', 'WP', 'K', 'WGE', 'YGG', 'W', 'YUASA', 'XPG',  'ABC', 'WHA', 'WHAUP', 'WFX', 'WINNER', 'WIIK', 'WIN', 'YONG', 'WPH', 'KCE']

data = {
  "col_one": ["ZEN", "WPH", "WICE", "YONG", "K", "XO", "WIN", "WP", "WIIK", "YGG-W1", "W-W5", "WINNER", "YUASA", "WGE", "WFX", "XPG", "WHAUP", "WHA", "KCE13P2302A", "OOP-R"],
}
df = pd.DataFrame(data)

# 匹配逻辑:核心词是前缀,或为符号分割后的独立部分
df['similar_words'] = df['col_one'].apply(
    lambda x: [c for c in list20 
               if x.startswith(c) or c in re.split(r'[^a-zA-Z0-9]', x)]
)
print(df)

逻辑说明

  • x.startswith(c):捕获所有作为前缀的核心词,比如WPH会匹配W、WP、WPH;KCE13P2302A会匹配K、KCE。
  • re.split(r'[^a-zA-Z0-9]', x):将字符串按非字母数字字符(如-)分割,匹配分割后的独立核心词,比如YGG-W1会匹配YGG,OOP-R会匹配OOP。

关键结果示例

col_onesimilar_words
WPH['WP', 'W', 'WPH']
KCE13P2302A['K', 'KCE']
YGG-W1['YGG']
WHAUP['WHA', 'WHAUP']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:50:25