利用Pandas求两个dataframe差集的过程详解

目录
  • 1、交集
  • 2、差集(df1-df2为例)
  • 总结

1、交集

intersected=pd.merge(df1,df2,how='inner')

延伸(针对列求交集)intersected=pd.merge(df1,df2,on['name'],how='inner')

2、差集(df1-df2为例)

diff=pd.concat([df1,df2,df2]).drop_duplicates(keep=False)

差集函数的详解:

1、Pandas 通过 concat() 函数能够轻松地将 Series 与 DataFrame 对象组合在一起,函数的语法格式如下: pd.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False)

2、需要对dataframe中的一列值有重复的,应用drop_duplicates解决了此问题。

比如:

ata={"a":[1,1,2,4,3,9],"b":[2,2,3,5,5,10],"c":[3,4,5,6,6,11],"d":[4,5,6,7,8,12]}
pd_data=pd.DataFrame(data=data)
print(pd_data)
t=pd_data.drop_duplicates(subset=['c','b'],keep='last',inplace=False)
print(t)

说明:

keep='first'表示保留第一次出现的重复行,是默认值。keep另外两个取值为"last"和False,分别表示保留最后一次出现的重复行和去除所有重复行。

inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。如果要生成新的DataFrame:,inplace=False

subset要去重的列。subset=['c','b'],表示行中的记录:c和b列都重复的。

3、将concat和drop_duplicates结合起来就解决了求差集的问题。

另外,还有一种方法也可以达到同样的目的:

总结

到此这篇关于利用Pandas求两个dataframe差集的文章就介绍到这了,更多相关Pandas求dataframe差集内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Pandas中两个dataframe的交集和差集的示例代码

    创建测试数据: import pandas as pd import numpy as np #Create a DataFrame df1 = { 'Subject':['semester1','semester2','semester3','semester4','semester1', 'semester2','semester3'], 'Score':[62,47,55,74,31,77,85]} df2 = { 'Subject':['semester1','semester2','s

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

    目录 模拟数据 差集 方法1:concat + drop_duplicates 方法2:append + drop_duplicates 交集 方法1:merge 方法2:concat + duplicated + loc 方法3:concat + groupby + query 并集 方法1:concat + drop_duplicates 方法2:append + drop_duplicates 方法3:merge 大家好,我是Peter~ 本文讲解的是如何利用Pandas函数求解两个Dat

  • Pandas的DataFrame如何做交集,并集,差集与对称差集

    目录 一.简介 二.交集 三.并集 四.差集 五.对称差集 一.简介 Python的数据类型集合:由不同元素组成的集合,集合中是一组无序排列的可 Hash 的值(不可变类型),可以作为字典的Key Pandas中的DataFrame:DataFrame是一个表格型的数据结构,可以理解为带有标签的二维数组. 常用的集合操作如下图所示: 二.交集 pandas的 merge 功能默认为 inner 连接,可以实现取交集 集合 set 可以直接用 & 取交集 import pandas as pd p

  • Pandas自定义shift与DataFrame求差集的小技巧

    目录 Pandas的高级shift偏移 Datafream对象求差集 总结 大家好,我是小小明.今天分享两个小技巧: Pandas的高级shift偏移 有很多玩量化的朋友经常碰到类似这样的问题: 其中有位量化大佬居然在半年后的今天又问了我一遍怎么实现这样的效果,他居然忘了我之前给他写过实现.为了避免有人再碰到类似的问题,特别写下此文. 我们知道Pandas默认的API是不支持这样的操作的,这个只能自己想办法实现.下面我借助数值索引实现这样的功能,并封装起来. 最终我们封装的方法如下: impor

  • Pandas DataFrame求差集的示例代码

    在Pandas中 求差集没有专门的函数.处理办法就是将两个DataFrame追加合并,然后去重. divident.append(hasThisYearDivident) noHasThisYearDivident = divident.drop_duplicates(subset='ts_code', keep=False, inplace=True, ignore_index=True) 具体函数用法: https://pandas.pydata.org/pandas-docs/stable

  • 利用Pandas求两个dataframe差集的过程详解

    目录 1.交集 2.差集(df1-df2为例) 总结 1.交集 intersected=pd.merge(df1,df2,how='inner') 延伸(针对列求交集)intersected=pd.merge(df1,df2,on['name'],how='inner') 2.差集(df1-df2为例) diff=pd.concat([df1,df2,df2]).drop_duplicates(keep=False) 差集函数的详解: 1.Pandas 通过 concat() 函数能够轻松地将

  • 对pandas通过索引提取dataframe的行方法详解

    一.假设有这样一个原始dataframe 二.提取索引 (已经做了一些操作将Age为NaN的行提取出来并合并为一个dataframe,这里提取的是该dataframe的索引,道理和操作是相似的,提取的代码没有贴上去是为了不显得太繁杂让读者看着繁琐) >>> index = unknown_age_Mr.index.tolist() #记得转换为list格式 三.提取索引对应的原始dataframe的行 使用iloc函数将数据块提取出 >>> age_df.iloc[in

  • C++求两数之和并返回下标详解

    目录 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. ACM模式 核心代码模式 方法一: 创建vector 添加元素 删除元素 其他 方法二: auto的使用 unordered_map 查找元素是否存在 若有unordered_map <int, int> mp;查找x是否在map中 类 总结: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 tar

  • pandas求两个表格不相交的集合方法

    Hi,好久不见,我还是那颗翻滚的老鼠屎.处理数据时想求两个表格求不相交的部分,或许是对知识的匮乏限制了我的想象力,并未找到直接求的方法,在这里介绍老鼠屎技己使用的方法,希望对读者会有帮助. 阴影部分为所要求的部分(但是前提是A.B两个集合都是无重复内容的集合) 首先先造两个DataFrame来做示例. import pandas as pd a0={"number":range(10),"letter":["a","a",&q

  • 利用Pandas 创建空的DataFrame方法

    平时写pyhton的时候习惯初始化一些list啊,tuple啊,dict啊这样的.一用到Pandas的DataFrame数据结构也就总想着初始化一个空的DataFrame,虽然没什么太大的用处,不过还是记录一下: # 创建一个空的 DataFrame df_empty = pd.DataFrame(columns=['A', 'B', 'C', 'D']) 上面创建的DataFrame有4列,每一行没有成员是空的. 输出一下结果: Empty DataFrame Columns: [A, B,

  • 使用pandas对两个dataframe进行join的实例

    需求: 两个文件,一个文件为统计报表,里面含有手机号,另一个文件为手机号段归属地,含有手机号码前七位对应的地区.需要对统计报表进行处理,将手机号所在的归属地加入到统计报表中,使用pandas提供的join功能来实现,代码如下: #coding=utf-8 from pandas import Series,DataFrame import pandas as pd #reader1 = pd.read_csv('Dm_Mobile.txt',iterator=True,encoding="gb2

  • python pandas.DataFrame.loc函数使用详解

    官方函数 DataFrame.loc Access a group of rows and columns by label(s) or a boolean array. .loc[] is primarily label based, but may also be used with a boolean array. # 可以使用label值,但是也可以使用布尔值 Allowed inputs are: # 可以接受单个的label,多个label的列表,多个label的切片 A singl

  • pandas和spark dataframe互相转换实例详解

    这篇文章主要介绍了pandas和spark dataframe互相转换实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 from pyspark.sql import SparkSession # 初始化spark会话 spark = SparkSession \ .builder \ .getOrCreate() spark_df = spark.createDataFrame(pandas_df) spark的dataframe转pa

随机推荐