全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何在 Pandas 中按元素交集合并两列字符串

本文介绍如何将 dataframe 中两列以逗号分隔的字符串进行逐行元素级交集运算,并生成新列;支持空交集时返回 `pd.na`,代码简洁高效,适用于文本标签、关键词匹配等场景。

在实际数据处理中,我们常遇到两列存储了用逗号分隔的标签、技能、品类等字符串(如 "#%#$#%@%@%$#%$#%#%#$%@_23eeeb4347bdd26bfc++6b7ee9a3b755dd, java, c++"),需要提取它们的共同元素作为新特征。Pandas 本身不直接支持字符串集合运算,但可通过 Python 原生 set 与列表推导式高效实现。

以下为完整操作步骤:

✅ 步骤一:构建示例数据

import pandas as pd

data = {
    'Col1': ["apple, banana, orange", "dog, cat", "python, java, c++"],
    'Col2': ["banana, lemon, blueberry", "bird, cat", "R, fortran"]
}
df = pd.DataFrame(data)

✅ 步骤二:计算元素交集并生成 Col3

核心逻辑是:对每行的 Col1 和 Col2 字符串分别
① 用 .split(', ') 拆分为列表;
② 转为 set 类型以支持交集运算(&);
③ 将交集结果用 ', '.join() 合并回字符串;
④ 若交集为空,显式赋值为 pd.NA(推荐做法,保持缺失值语义清晰)。

df['Col3'] = [
    ', '.join(set(a.split(', ')) & set(b.split(', '))) or pd.NA
    for a, b in zip(df['Col1'], df['Col2'])
]
? 说明:or pd.NA 是简洁写法,等价于三元表达式 x if x else pd.NA。它确保空字符串(即无交集)被替换为 pd.NA,而非空字符串 "",从而正确参与后续 isna() 判断、统计或可视化。

✅ 输出效果

Col1 Col2 Col3
apple, banana, orange banana, lemon, blueberry banana
dog, cat bird, cat cat
python, java, c++ R, fortran

⚠️ 注意事项

  • 空格敏感:split(', ') 要求逗号后紧跟一个空格。若原始数据格式不统一(如 "apple,banana" 或 "apple , cat"),建议先标准化:
    df['Col1'] = df['Col1'].str.replace(r'\s*,\s*', ', ', regex=True).str.strip()
  • 大小写处理:如需忽略大小写,可在转 set 前统一小写:
    set(a.lower().split(', ')) & set(b.lower().split(', '))
  • 性能提示:对于超大数据集(百万行以上),可改用 apply + lambda 并启用 vectorize=False,或考虑 swifter 加速;但列表推导式在多数场景下已足够快且内存友好。

该方法轻量、可读性强,无需额外依赖,是 Pandas 文本集合运算的经典实践方案。


# python  # java  # 大数据  # app  # c++  # apple 


相关文章: 网页设计网站制作软件,microsoft office哪个可以创建网页?  如何彻底卸载建站之星软件?  建站主机选购指南:核心配置优化与品牌推荐方案  建站之星如何保障用户数据免受黑客入侵?  TestNG的testng.xml配置文件怎么写  历史网站制作软件,华为如何找回被删除的网站?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  自助网站制作软件,个人如何自助建网站?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  建站之星代理如何获取技术支持?  如何在阿里云部署织梦网站?  如何用虚拟主机快速搭建网站?详细步骤解析  如何高效配置香港服务器实现快速建站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  建站之星北京办公室:智能建站系统与小程序生成方案解析  官网建站费用明细查询_企业建站套餐价格及收费标准指南  代刷网站制作软件,别人代刷火车票靠谱吗?  建站之星24小时客服电话如何获取?  建站之星后台管理系统如何操作?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  广州美橙建站如何快速搭建多端合一网站?  如何做网站制作流程,*游戏网站怎么搭建?  建站之星安装失败:服务器环境不兼容?  如何快速搭建自助建站会员专属系统?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  高端网站建设与定制开发一站式解决方案 中企动力  手机网站制作与建设方案,手机网站如何建设?  网站企业制作流程,用什么语言做企业网站比较好?  海南网站制作公司有哪些,海口网是哪家的?  ppt制作免费网站有哪些,ppt模板免费下载网站?  建站DNS解析失败?如何正确配置域名服务器?  如何通过二级域名建站提升品牌影响力?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  公众号网站制作网页,微信公众号怎么制作?  如何在宝塔面板中修改默认建站目录?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  b2c电商网站制作流程,b2c水平综合的电商平台?  C#怎么创建控制台应用 C# Console App项目创建方法  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何快速搭建高效香港服务器网站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  建站之星如何助力企业快速打造五合一网站?  在线制作视频网站免费,都有哪些好的动漫网站?  如何在Golang中使用replace替换模块_指定本地或远程路径  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何批量查询域名的建站时间记录?  如何在阿里云虚拟主机上快速搭建个人网站?  如何通过wdcp面板快速创建网站?  盘锦网站制作公司,盘锦大洼有多少5G网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。