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

如何用Pandas合并CCAM词库同CODE的LABEL并剔除差异后缀?

解决同一CCAM code对应多label的公共前缀提取问题

针对你遇到的同一code对应多个仅后缀不同的label的情况,核心是提取所有对应label的最长公共前缀,再完成分组合并。你之前的代码只是取了第一个label,没有处理前缀提取,下面是具体解决方案:

1. 实现最长公共前缀提取函数

先写一个函数,接收字符串列表,返回它们的最长公共前缀,同时处理末尾可能残留的逗号和空格:

def longest_common_prefix(strings):
    if not strings:
        return ""
    # 以最短字符串为基准,减少对比次数
    shortest_str = min(strings, key=len)
    for idx, char in enumerate(shortest_str):
        for s in strings:
            if s[idx] != char:
                # 截断到不同字符前的位置,清理末尾的逗号和空格
                return shortest_str[:idx].rstrip(', ')
    # 如果所有字符都匹配,返回清理后的最短字符串
    return shortest_str.rstrip(', ')

2. 分组合并并应用前缀提取

用groupby结合上面的函数,替换原来的LABEL处理逻辑,同时保留你原有的EXTENSION字段处理:

import pandas as pd

# 假设你的原始数据框为df
df_merged = df.groupby('CODE').agg({
    'LABEL': longest_common_prefix,
    'EXTENSION': 'first'
}).reset_index()

效果验证

针对你给出的示例数据:

  • 对于AHQP002,两个label的公共前缀会被提取为Electromyography by surface ...(省略号部分为共同内容)
  • 对于JKFC002,会得到Subtotal hysterectomy, by laparoscopy

完全符合你只保留共同前缀的需求。

内容的提问来源于stack exchange,提问作者Papa Yatma Diop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:47:40