pandas进行数据的交集与并集方式的数据合并方法
技术  /  管理员 发布于 6年前   283
数据合并有多种方式,其中最常见的应该就是交集和并集的求取。之前通过分析总结过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进行数据的交集与并集方式的数据合并方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号