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 相关文章推荐
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
python获取本地计算机名字的方法
Apr 29 Python
python 遍历字符串(含汉字)实例详解
Apr 04 Python
python微信好友数据分析详解
Nov 19 Python
PyQt5 多窗口连接实例
Jun 19 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
Python-接口开发入门解析
Aug 01 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
Keras 快速解决OOM超内存的问题
Jun 11 Python
python爬虫---requests库的用法详解
Sep 28 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
Js 中debug方式
2010/02/07 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
原生js实现放大镜
2017/02/20 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Django 前后台的数据传递的方法
2017/08/08 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
交通事故检查书范文
2014/01/30 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
爱国主义演讲稿
2014/05/07 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android
Python OpenCV超详细讲解基本功能
2022/04/02 Python