iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解利用Pandas求解两个DataFrame的差集,交集,并集
  • 360
分享到

详解利用Pandas求解两个DataFrame的差集,交集,并集

2024-04-02 19:04:59 360人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录模拟数据差集方法1:concat + drop_duplicates方法2:append + drop_duplicates交集方法1:merge方法2:concat + dup

大家好,我是Peter~

本文讲解的是如何利用pandas函数求解两个DataFrame的差集、交集、并集。

模拟数据

模拟一份简单的数据:

In [1]:

import pandas as pd

In [2]:

df1 = pd.DataFrame({"col1":[1,2,3,4,5],
                    "col2":[6,7,8,9,10]
                   })

df2 = pd.DataFrame({"col1":[1,3,7],
                    "col2":[6,8,10]
                   })

In [3]:

df1

Out[3]:

 col1col2
016
127
238
349
4510

In [4]:

df2

Out[4]:

 col1col2
016
138
2710

两个DataFrame的相同部分:

差集

方法1:concat + drop_duplicates

In [5]:

df3 = pd.concat([df1,df2])
df3

Out[5]:

 col1col2
016
127
238
349
4510
016
138
2710

In [6]:

# 结果1

df3.drop_duplicates(["col1","col2"],keep=False)

Out[6]:

 col1col2
127
349
4510
2710

方法2:append + drop_duplicates

In [7]:

df4 = df1.append(df2)
df4

Out[7]:

 col1col2
016
127
238
349
4510
016
138
2710

In [8]:

# 结果2

df4.drop_duplicates(["col1","col2"],keep=False)

Out[8]:

 col1col2
127
349
4510
2710

交集

方法1:merge

In [9]:

# 结果

# 等效:df5 = pd.merge(df1, df2, how="inner")
df5 = pd.merge(df1,df2)

df5

Out[9]:

 col1col2
016
138

方法2:concat + duplicated + loc

In [10]:

df6 = pd.concat([df1,df2])
df6

Out[10]:

 col1col2
016
127
238
349
4510
016
138
2710

In [11]:

s = df6.duplicated(subset=['col1','col2'], keep='first')
s

Out[11]:

0    False
1    False
2    False
3    False
4    False
0     True
1     True
2    False
dtype: bool

In [12]:

# 结果
df8 = df6.loc[s == True]
df8

Out[12]:

 col1col2
016
138

方法3:concat + groupby + query

In [13]:

# df6 = pd.concat([df1,df2])

df6

Out[13]:

 col1col2
016
127
238
349
4510
016
138
2710

In [14]:

df9 = df6.groupby(["col1", "col2"]).size().reset_index()
df9.columns = ["col1", "col2", "count"]

df9

Out[14]:

 col1col2count
0162
1271
2382
3491
45101
57101

In [15]:

df10 = df9.query("count > 1")[["col1", "col2"]]
df10

Out[15]:

 col1col2
016
238

并集

方法1:concat + drop_duplicates

In [16]:

df11 = pd.concat([df1,df2])
df11

Out[16]:

 col1col2
016
127
238
349
4510
016
138
2710

In [17]:

# 结果

# df12 = df11.drop_duplicates(subset=["col1","col2"],keep="last")
df12 = df11.drop_duplicates(subset=["col1","col2"],keep="first")
df12

Out[17]:

 col1col2
016
127
238
349
4510
2710

方法2:append + drop_duplicates

In [18]:

df13 = df1.append(df2)

# df13.drop_duplicates(subset=["col1","col2"],keep="last")
df13.drop_duplicates(subset=["col1","col2"],keep="first")

Out[18]:

 col1col2
016
127
238
349
4510
2710

方法3:merge

In [19]:

pd.merge(df1,df2,how="outer")

Out[19]:

 col1col2
016
127
238
349
4510
5710

以上就是详解利用Pandas求解两个DataFrame的差集,交集,并集的详细内容,更多关于Pandas DataFrame差集 交集 并集的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解利用Pandas求解两个DataFrame的差集,交集,并集

本文链接: https://www.lsjlt.com/news/119381.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解利用Pandas求解两个DataFrame的差集,交集,并集
    目录模拟数据差集方法1:concat + drop_duplicates方法2:append + drop_duplicates交集方法1:merge方法2:concat + dup...
    99+
    2024-04-02
  • 利用Pandas求两个dataframe差集的过程详解
    目录1、交集2、差集(df1-df2为例)总结1、交集 intersected=pd.merge(df1,df2,how='inner') 延伸(针对列求交集)int...
    99+
    2024-04-02
  • Pandas的DataFrame如何做交集,并集,差集与对称差集
    目录一、简介二、交集三、并集四、差集五、对称差集一、简介 Python的数据类型集合:由不同元素组成的集合,集合中是一组无序排列的可 Hash 的值(不可变类型),可以作为字典的Ke...
    99+
    2024-04-02
  • 【Java】求两集合的交集、并集、差集
    一、内置函数实现 1、removeAll方法:从list中删除指定集合中包含的所有元素。 2、retainAll方法:从list中删除指定集合中不包含的所有元素。 3、addAll方法:用来向Set集合添加另一个集合对象所包含的所有内容。 ...
    99+
    2023-08-18
    java
  • Java两个List<T>求交集,差集,并集,去重后的并集
    目录操作的List<T>声明求交集 retainAll()求差集 removeAll()求并集 addAll()求去重后的并集 操作的List<T>...
    99+
    2024-04-02
  • sql求两表的并集、交集、非交集、差集、结果集排序
    要求两个表的并集、交集、非交集、差集以及结果集排序,可以使用以下的SQL语句:1. 并集:```SELECT * FROM ...
    99+
    2023-09-02
    sql
  • mysql 如何获取两个集合的交集/差集/并集
    mysql的常见场景,获取两个数据集的交集和差集 步骤 1、两个集合的结构要一致,对应的字段数,字段类型 2、将两个集合用 UNION ALL 关键字合并,这里的结果是有重复...
    99+
    2024-04-02
  • JS怎么计算两个数组的交集、差集、并集、补集
    这篇文章给大家分享的是有关JS怎么计算两个数组的交集、差集、并集、补集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方法一:最普遍的做法使用 ES5 语法来实现虽然会麻烦些,但兼...
    99+
    2024-04-02
  • java8集合求差集、并集、交集的示例分析
    这篇文章将为大家详细讲解有关java8集合求差集、并集、交集的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言java8里最大亮点是lambda,让我们用习惯C# linq的语法,也能眼前一亮。...
    99+
    2023-05-30
    java8
  • sql server 交集,差集的用法详解
    在SQL Server中,可以使用INTERSECT和EXCEPT来执行交集和差集操作。1. 交集(INTERSECT):交集操作用于找到两个查询结果集之间的共同记录。语法如下:```SELECT column1, column...
    99+
    2023-08-09
    sql server
  • .NET中求复杂类型集合的差集、交集、并集
    目录前言场景下面我们取交集/差集/并集以上输出仔细看一下明显是不对的,这就涉及到了复杂类型对比,请看代码:前言 如标题所述,在ASP.NET应用程序开发中,两个集合做比较时 我们使用...
    99+
    2024-04-02
  • Java中两个List之间的比较方法(差集、交集和并集)
    目录求差集求交集求并集(不去重)求并集(去重)实际业务场景建立关联产品Vo业务代码实现总结实现比较两个List之间的差异,包括获取两List的差集,交集,并集(不去重&去重)...
    99+
    2024-04-02
  • Java之Set 交集,差集,并集的用法
    目录Java之Set 交集,差集,并集java8 list<bean>交集差集并集定义bean定义两个list总结Java之Set 交集,差集,并集 import ja...
    99+
    2023-05-18
    Java Set Java交集 Java差集 Java并集
  • Java使用不同方式获取两个集合List的交集、补集、并集(相加)、差集(相减)
    1 明确概念 首先知道几个单词的意思: 并集 = union 交集 = intersection 补集 = complement 析取 = disjunction 减去 = subtract 1.1 并集 对于两个...
    99+
    2023-09-04
    java 后端 Powered by 金山文档
  • SQL交集、并集和差集的使用及运算优先级比较详解
    SQL交集、并集和差集是用来处理数据集合的运算符号。交集操作(INTERSECT)是指从两个数据集合中选取共同的元素。它的语法结构如...
    99+
    2023-09-09
    SQL
  • Pandas自定义shift与DataFrame求差集的小技巧
    目录Pandas的高级shift偏移Datafream对象求差集总结 大家好,我是小小明。今天分享两个小技巧: Pandas的高级shift偏移 有很多玩量化的朋友经常碰到...
    99+
    2024-04-02
  • mysql怎样求两个查询的交集
    这篇文章主要介绍mysql怎样求两个查询的交集,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql求两个查询交集的方法:首先查满足单组变量键值对的流程实例id;然后将每个变量键值...
    99+
    2024-04-02
  • es6如何求两个数组的交集
    这篇文章主要介绍“es6如何求两个数组的交集”,在日常操作中,相信很多人在es6如何求两个数组的交集问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6如何求两个数组的交集”...
    99+
    2024-04-02
  • Python中怎么求两个数组的交集
    Python中怎么求两个数组的交集,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。题目:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1&n...
    99+
    2023-06-02
  • c语言求两个字符串的交集
    目录一、main()函数二、fun1()函数三、fun2()函数 注意;总结求两个字符串的交集,看似简单,实则需要考虑的细节很多。 我的思路: 1.将两个字符串简化,将里面...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作