pandas进行数据的交集与并集方式的数据合并方法


Posted in Python onJune 27, 2018

数据合并有多种方式,其中最常见的应该就是交集和并集的求取。之前通过分析总结过pandas数据merge功能默认的行为,其实默认下求取的就是两个数据的“交集”。

有如下数据定义:

In [26]: df1
Out[26]: 
 data1 key
0  0 b
1  1 b
2  2 a
3  3 c
4  4 a
5  5 a
6  6 b
In [27]: df2
Out[27]: 
 data2 key
0  0 a
1  1 b
2  2 d
3  3 b

进行merge的结果:

In [28]: pd.merge(df1,df2)
Out[28]: 
 data1 key data2
0  0 b  1
1  0 b  3
2  1 b  1
3  1 b  3
4  6 b  1
5  6 b  3
6  2 a  0
7  4 a  0
8  5 a  0

从上面的结果中能够看出,merge的默认处理行为是求取了两组数据key的交集,但是对于key的值进行了并集的求取。其实也很好理解,如果仅仅是求取交集而数据没有任何合并那就不叫做数据合并了。

接下来试一下制定了参数的的交集数据合并处理:

In [29]: pd.merge(df1,df2,how='inner')
Out[29]: 
 data1 key data2
0  0 b  1
1  0 b  3
2  1 b  1
3  1 b  3
4  6 b  1
5  6 b  3
6  2 a  0
7  4 a  0
8  5 a  0
In [30]: result_inner = pd.merge(df1,df2,how='inner')
In [31]: result_default = pd.merge(df1,df2)
In [32]: result_inner == result_default
Out[32]: 
 data1 key data2
0 True True True
1 True True True
2 True True True
3 True True True
4 True True True
5 True True True
6 True True True
7 True True True
8 True True True

通过上面的结果可以看出:制定了参数的的交集数据合并处理的结果与数据合并方法merge的默认行为是一致的。

再试一下并集数据合并处理方法,这需要制定参数how为outer:

In [35]: result_outer = pd.merge(df1,df2,how='outer')
In [36]: result_outer
Out[36]: 
 data1 key data2
0  0.0 b 1.0
1  0.0 b 3.0
2  1.0 b 1.0
3  1.0 b 3.0
4  6.0 b 1.0
5  6.0 b 3.0
6  2.0 a 0.0
7  4.0 a 0.0
8  5.0 a 0.0
9  3.0 c NaN
10 NaN d 2.0

通过上面的执行结果可以看出:合并后的数据中的key拥有了两组数据所有的key,而数据虽然有一部分两组数据不能够重合,但也通过NaN的值进行了相应的填补。

还有一点需要注意的,那就是合并之后的数据个数。合并后的数据中,key的个数是两组数据中分别拥有的数据的笛卡尔乘积。如果其中一组没有的时候,进行合并的时候另一组数据中会创建一个NaN数值的对象与之进行合并。

以上这篇pandas进行数据的交集与并集方式的数据合并方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
java直接调用python脚本的例子
Feb 16 Python
python+mysql实现简单的web程序
Sep 11 Python
python多重继承实例
Oct 11 Python
详解Python的Lambda函数与排序
Oct 25 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
python3 kmp 字符串匹配的方法
Jul 07 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
python 爬取京东指定商品评论并进行情感分析
May 27 Python
python-str,list,set间的转换实例
Jun 27 #Python
Python将多个list合并为1个list的方法
Jun 27 #Python
python进行两个表格对比的方法
Jun 27 #Python
Python快速查找list中相同部分的方法
Jun 27 #Python
Python面向对象类的继承实例详解
Jun 27 #Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 #Python
Python查找第n个子串的技巧分享
Jun 27 #Python
You might like
PHP cron中的批处理
2008/09/16 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
2020/09/16 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
python中abs&map&reduce简介
2018/02/20 Python
详解Python中的正则表达式
2018/07/08 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
python实现计算器简易版
2020/12/17 Python
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
交通安全寄语大全
2014/04/08 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
2022年四月新番
2022/03/15 日漫