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

如何对pandas DataFrame的A、B两列去重拼接生成新列C

Pandas DataFrame 两列大小写不敏感去重合并实现

实现逻辑

  • 逐行处理A、B两列,单词对比时忽略大小写
  • 若B列的单词在A列已存在(不区分大小写),删除A列中对应的重复单词,保留B列的原有大小写格式
  • 最终将B列内容 + A列去重后剩余内容拼接,作为C列结果

可运行代码

import pandas as pd

def merge_ab(row):
    # 拆分A、B列为单词列表
    a_words = row['A'].split()
    b_words = row['B'].split()
    # B列单词转小写存集合,用于快速判断重复
    b_lower_set = set(word.lower() for word in b_words)
    # 过滤A列中不与B列重复的单词
    a_remain = [word for word in a_words if word.lower() not in b_lower_set]
    # 拼接返回结果
    return ' '.join(b_words + a_remain)

# 测试数据
data = {
    'A': ['tshirt for women', 'Zaino Estensibile', 'Air Optix plus'],
    'B': ['TSHIRT', 'SJ Gang', 'AIR OPTIX']
}
df = pd.DataFrame(data)

# 应用函数生成C列
df['C'] = df.apply(merge_ab, axis=1)
print(df)

输出结果

A          B                          C
0     tshirt for women     TSHIRT         TSHIRT for women
1    Zaino Estensibile    SJ Gang  SJ Gang Zaino Estensibile
2       Air Optix plus  AIR OPTIX            AIR OPTIX plus

如果实际场景中单词分隔符除了空格还有横杠、逗号等特殊字符,可以在拆分单词前先对内容做预处理,用正则把特殊字符替换为空格后再拆分即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:27:04