【有书共读】跟老齐学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

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务