【有书共读】跟老齐学Python 读书笔记6 之数据的合并

数据的合并

1.pd.contact
这个是之前讲过的一个函数,可以通过指定连接轴的方向axis值,来实现是按行合并还是按列合并(行列是对DataFrame对象而言的)。
图片说明
那假如通过concat对象合并的数据内容具有相同的记录呢?
图片说明
可以发现,记录 height 值为135 同时 name 值为 "conna" 的记录出现了两次,而生活中,我们往往处理的是像数据库中的一些数据,而我们知道数据库的数据一般都具有唯一性,也就是在这里我们希望记录 height 值为135 同时 name 值为 "conna" 的记录只出现一次,这个时候,我们就可以用pd.merge 函数来实现两个DataFrame对象的“数据库风格合并”了。
图片说明
事实上,之所以 pd.merge 可以实现取两个DataFrame对象的交集,是因为参数 how 默认值是"inner",既然可以设置交集,同样我们可以通过指定参数 how 的值为 “outer” 来取两个DataFrame对象的并集。
图片说明
除了并集和交集,参数 how 的取值还可以为 left 和 right,分别表示以左边的对象、右边的对象中所指定的列、以并集的方式合并数据,具体效果可以参照下图(注意红线框所圈部分)。
图片说明
我们可以通过指明参数 indicator 值为 True 来使数据来源更加清楚,其中 "left_only" 表示该行记录来源于左边的DataFrame对象, “right_only”表示该行记录来源于右边的DataFrame对象,自然而然,"both" 表示该行记录来源于左、右对象共有的记录。
图片说明
除了以整个左边的列、整个右边的列为关键字,还可以通过指定参数 on 的值,来选取指定列为合并的关键字选项(注意下图出现 NaN 是空数据),一般参数 on 的取值为左、右对象共有的列,如果是要单独用左边对象的列为合并关键字,或者右边对象的列为合并关键字,可以分别设置参数 left_on 和 right_on 的值来实现。
图片说明
关于 pd.merge 函数的更多参数设置可以看官方文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html

#读书笔记##笔记##Python#
全部评论
顶一个
点赞 回复 分享
发布于 2018-08-26 21:34

相关推荐

01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
剑桥断刀:找啥工作,牛客找个比如大厂软开或者随便啥的高薪牛马,大把没碰过妹子的技术仔,狠狠拿捏爆金币
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务