热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用pd.merge进行表连接,出现多余行的问题

本文的目标是将表1论文及出版物与表2出版物及其指标进行匹配。利用pandas的merge函数实现表的左外连接。左外连接即左表的外连接,左表保持不变,匹配

本文的目标是将表1论文及出版物与表2出版物及其指标进行匹配。
表1 论文出版物信息(存在空值)
表2 出版物指标信息
利用pandas的merge函数实现表的左外连接。左外连接即左表的外连接,左表保持不变,匹配右表的行(合并后右表肯能存在空值)。

paperPublicationIndicator = pd.merge(paperPublication,publicationIndicator,how='left',left_on='出版物',right_on='名称',sort=False)

结果发现连接后表多出来13行。进行探究发现是表2出版物指标信息中存在 出版物A-指标1,出版物A-指标2这样的出版物重复行。记性匹配后会出现:

出版物 名称 指标
出版物A 出版物A 指标1
出版物A 出版物A 指标2 #多余的行

这里选择预先删除 表2出版物指标 中的重复出版物信息。

publicationIndicator.drop_duplicates(subset=['名称'],keep='first',inplace=True)

这样结果就没有问题了。


推荐阅读
author-avatar
Larry_He
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有