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生成url短链接的方法
May 04 Python
高质量Python代码编写的5个优化技巧
Nov 16 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
详解Python自建logging模块
Jan 29 Python
numpy中loadtxt 的用法详解
Aug 03 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
用什么库写 Python 命令行程序(示例代码详解)
Feb 20 Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
Jul 02 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 Python
讲解Python实例练习逆序输出字符串
May 06 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
基于mysql的论坛(6)
2006/10/09 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
JS复制到剪贴板示例代码
2013/10/30 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
Python实现端口检测的方法
2018/07/24 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python爬取代理ip的示例
2020/12/18 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
彪马美国官网:PUMA美国
2017/03/09 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
审核会计岗位职责
2013/11/08 职场文书
旅游业大学生创业计划书
2014/01/31 职场文书
团日活动策划书
2014/02/01 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
创新社会管理心得体会
2014/09/12 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
放假通知
2015/04/14 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers