pandas进行数据的交集与并集方式的数据合并方法
技术  /  管理员 发布于 7年前   492
数据合并有多种方式,其中最常见的应该就是交集和并集的求取。之前通过分析总结过pandas数据merge功能默认的行为,其实默认下求取的就是两个数据的“交集”。
有如下数据定义:
In [26]: df1Out[26]: data1 key0 0 b1 1 b2 2 a3 3 c4 4 a5 5 a6 6 b
In [27]: df2Out[27]: data2 key0 0 a1 1 b2 2 d3 3 b
进行merge的结果:
In [28]: pd.merge(df1,df2)Out[28]: data1 key data20 0 b 11 0 b 32 1 b 13 1 b 34 6 b 15 6 b 36 2 a 07 4 a 08 5 a 0
从上面的结果中能够看出,merge的默认处理行为是求取了两组数据key的交集,但是对于key的值进行了并集的求取。其实也很好理解,如果仅仅是求取交集而数据没有任何合并那就不叫做数据合并了。
接下来试一下制定了参数的的交集数据合并处理:
In [29]: pd.merge(df1,df2,how='inner')Out[29]: data1 key data20 0 b 11 0 b 32 1 b 13 1 b 34 6 b 15 6 b 36 2 a 07 4 a 08 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_defaultOut[32]: data1 key data20 True True True1 True True True2 True True True3 True True True4 True True True5 True True True6 True True True7 True True True8 True True True
通过上面的结果可以看出:制定了参数的的交集数据合并处理的结果与数据合并方法merge的默认行为是一致的。
再试一下并集数据合并处理方法,这需要制定参数how为outer:
In [35]: result_outer = pd.merge(df1,df2,how='outer')
In [36]: result_outerOut[36]: data1 key data20 0.0 b 1.01 0.0 b 3.02 1.0 b 1.03 1.0 b 3.04 6.0 b 1.05 6.0 b 3.06 2.0 a 0.07 4.0 a 0.08 5.0 a 0.09 3.0 c NaN10 NaN d 2.0
通过上面的执行结果可以看出:合并后的数据中的key拥有了两组数据所有的key,而数据虽然有一部分两组数据不能够重合,但也通过NaN的值进行了相应的填补。
还有一点需要注意的,那就是合并之后的数据个数。合并后的数据中,key的个数是两组数据中分别拥有的数据的笛卡尔乘积。如果其中一组没有的时候,进行合并的时候另一组数据中会创建一个NaN数值的对象与之进行合并。
以上这篇pandas进行数据的交集与并集方式的数据合并方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号