当前位置:主页 > python教程 > pandas进行数据的交集与并集方式的合并方式总结

pandas进行数据的交集与并集方式的合并方法详解

发布:2019-07-29 15:48:27 280


为找教程的网友们整理了相关的编程文章,网友简梓菱根据主题投稿了本篇教程内容,涉及到pandas、交集、并集、pandas进行数据的交集与并集方式的合并方式总结相关内容,已被548网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

pandas进行数据的交集与并集方式的合并方式总结

数据合并有多种方式,其中最常见的应该就是交集和并集的求取。之前通过分析总结过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进行数据的交集与并集方式的数据合并方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。


相关文章

  • pandas创建DataFrame对象失败的解决方法

    发布:2023-03-08

    本文主要介绍了pandas创建DataFrame对象失败的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Pandas时间数据处理详细教程

    发布:2023-04-29

    日常工作中日期格式有多种表达形式,比如年份开头或是月份开头2022/6/4、6/4/2022等,通过pandas的日期数据处理,这篇文章主要给大家介绍了关于Pandas时间数据处理的相关资料,需要的朋友可以参考下


  • pandas数据归一化以和行删除例程的具体办法介绍

    发布:2019-09-01

    今天小编就为大家分享一篇pandas 数据归一化以及行删除例程的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • pandas的apply函数用法详解

    发布:2023-03-04

    本文主要介绍了pandas的apply函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • pandas实现导出数据的四种方式

    发布:2022-10-20

    为网友们分享了关于pandas的教程,这篇文章主要介绍了pandas实现导出数据的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Pandas使用分隔符或正则表达式将字符串拆分为多列

    发布:2023-03-29

    本文主要介绍了Pandas使用分隔符或正则表达式将字符串拆分为多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Pandas DataFrame缺失值的查找与填充知识点总结

    发布:2019-10-24

    今天小编就为大家分享一篇对Pandas DataFrame缺失值的查找与填充示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • Pandas分组聚合之使用自定义函数方法transform()、apply()

    发布:2023-04-26

    Pandas具有很多强大的功能,transform就是其中之一,利用它可以高效地汇总数据且不改变数据行数,下面这篇文章主要给大家介绍了关于Pandas分组聚合之使用自定义函数方法transform()、apply()的相关资料,需要的朋友可以参考下


网友讨论