pandas求两个表格不相交的集合方法
Hi,好久不见,我还是那颗翻滚的老鼠屎。处理数据时想求两个表格求不相交的部分,或许是对知识的匮乏限制了我的想象力,并未找到直接求的方法,在这里介绍老鼠屎技己使用的方法,希望对读者会有帮助。
阴影部分为所要求的部分(但是前提是A、B两个集合都是无重复内容的集合)
首先先造两个DataFrame来做示例。
import pandas as pd a0={"number":range(10),"letter":["a","a","b","b","c","f","f","e","h","w"]} a=pd.DataFrame(a0) b0={"number":range(15),"letter":["b","a","t","b","r","f","g","e","j","w","t","h","i","y","u"]} b=pd.DataFrame(b0)
看一下两个DataFrame的样子
关于差集,我们是要去除两个DataFrame中公共的部分,因此我的想法是:
(1)先将两个DataFrame融合为一个DataFrame;
(2)去掉当中公共的部分(使用drop_duplicates去重)。
下面来看一下代码:
c=a.append(b) c.drop_duplicates(keep=False,inplace=True) c.reset_index()
这里想要说明的是,drop_duplicates当中的参数keep=False,意为重复项全部删除,它还有keep="first"与keep="last",分别对应在有多项重复时,保留第一项(或最后一项)。具体可参考官方文档。
得到的效果是如下所示。虽然过程很简单,但是很好用。
同样的道理可用来求差集,在此不做赘述。
以上这篇pandas求两个表格不相交的集合方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python遍历pandas数据方法总结
前言 Pandas是python的一个数据分析包,提供了大量的快速便捷处理数据的函数和方法.其中Pandas定义了Series 和 DataFrame两种数据类型,这使数据操作变得更简单.Series 是一种一维的数据结构,类似于将列表数据值与索引值相结合.DataFrame 是一种二维的数据结构,接近于电子表格或者mysql数据库的形式. 在数据分析中不可避免的涉及到对数据的遍历查询和处理,比如我们需要将dataframe两列数据两两相除,并将结果存储于一个新的列表中.本文通过该例程介绍对pa
-
pandas 实现将重复表格去重,并重新转换为表格的方法
在python处理数据时,经常用到DataFrame和set. train=pd.read_csv('XXX.csv')#读取文件 train=train['item_id']#选择要去重的列 train=set(train)#去重 data=pd.DataFrame(list(train),columns=['item_id'])#因为set是无序的,必须要经过list处理后才能成为DataFrame data.to_csv('xxx.csv',index=False)#保存表格 记得导入pa
-
python Pandas 读取txt表格的实例
运行环境 Python 2.7 操作实例 1.原始文本格式:空格分隔的txt,例如 2016-03-22 00:06:24.4463094 中文测试字符 2016-03-22 00:06:32.4565680 需要编辑encoding 2016-03-22 00:06:32.6835965 abc 2016-03-22 00:06:32.8041945 egb 2.pandas 读取数据 import pandas as pd data = pd.read_table('Z:/test.txt'
-
Python pandas常用函数详解
本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime import re 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名,0,1,2,3... names=['A', 'B', 'C'...] 自定义列名 index_col='
-
pandas求两个表格不相交的集合方法
Hi,好久不见,我还是那颗翻滚的老鼠屎.处理数据时想求两个表格求不相交的部分,或许是对知识的匮乏限制了我的想象力,并未找到直接求的方法,在这里介绍老鼠屎技己使用的方法,希望对读者会有帮助. 阴影部分为所要求的部分(但是前提是A.B两个集合都是无重复内容的集合) 首先先造两个DataFrame来做示例. import pandas as pd a0={"number":range(10),"letter":["a","a",&q
-
利用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() 函数能够轻松地将
-
Python实现求两个csv文件交集的方法
本文实例讲述了Python实现求两个csv文件交集的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python rd3 = open('data_17_17_2.csv') base = open('data_17_17_3.csv') wr3 = open('delNoBuyed3DayAndStoreAndInCar4.5.2.csv','w+') bsData = base.readlines() i = 1 for key in rd3: if key in bs
-
java实现字符串匹配求两个字符串的最大公共子串
本文实例讲述了java实现求两个字符串最大公共子串的方法.分享给大家供大家参考,具体如下: 最近在项目工作中有一个关于文本对比的需求,经过这段时间的学习,总结了这篇博客内容:求两个字符串的最大公共子串. 算法思想:基于图计算两字符串的公共子串.具体算法思想参照下图: 输入字符串S1:achmacmh 输入字符串S2:macham 第a步,是将字符串s1,s2分别按字节拆分,构成一个二维数组: 二维数组中的值如b所示,比如第一行第一列的值表示字符串s2和s1的第一个字节是否相等,若相等就是1
-
Python Pandas两个表格内容模糊匹配的实现
目录 一.方法2 1. 导入库 2. 构建关键词 3. 构建句子 4. 建立统一索引 5. 表连接 6. 关键词匹配 二.方法2 1. 构建字典 2. 关键词匹配 3. 结果展示 4. 匹配结果展开 总结 一.方法2 此方法是两个表构建某一相同字段,然后全连接,在做匹配结果筛选,此方法针对数据量不大的时候,逻辑比较简单,但是内存消耗较大 1. 导入库 import pandas as pd import numpy as np import re 2. 构建关键词 #关键词数据 df_keywo
-
对pandas中两种数据类型Series和DataFrame的区别详解
1. Series相当于数组numpy.array类似 s1=pd.Series([1,2,4,6,7,2]) s2=pd.Series([4,3,1,57,8],index=['a','b','c','d','e']) print s2 obj1=s2.values # print obj1 obj2=s2.index # print obj2 # print s2[s2>4] # print s2['b'] 1.Series 它是有索引,如果我们未指定索引,则是以数字自动生成. 下面是一些例
-
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
-
Python pandas求方差和标准差的方法实例
目录 准备 1.求方差 1.1对全表进行操作 1.1.1求取每列的方差 1.1.2 求取每行的方差 1.2 对单独的一行或者一列进行操作 1.2.1 求取单独某一列的方差 1.2.2 求取单独某一行的方差 1.3 对多行或者多列进行操作 1.3.1 求取多列的方差 1.3.2 求取多行的方差 2 求标准差 2.1对全表进行操作 2.1.1对每一列求标准差 2.1.2 对每一行求标准差 2.2 对单独的一行或者一列进行操作 2.2.1 对某一列求标准差 2.2.2 对某一行求标准差 2.3 对多行
-
pandas求平均数和中位数的方法实例
目录 准备 1.求平均数 1.1对全表进行操作 1.1.2 求取每行的平均数 1.2 对单独的一行或者一列进行操作 1.2.1 求取单独某一列的平均数 1.3 对多行或者多列进行操作 1.3.1 求取多列的平均数 1.3.2 求取多行的平均数 2 求中位数 2.1对全表进行操作 2.1.1对每一列求中位数 2.1.2 对每一行求中位数 2.2 对单独的一行或者一列进行操作 2.2.1 对某一列求中位数 2.2.2 对某一行求中位数 2.3 对多行或者多列进行操作 2.3.1 对多列求中位数 2.
-
JAVA求两直线交点和三角形内外心的方法
一.求两直线交点 复制代码 代码如下: class Point { double x; double y; public Point() { this.x = 0; this.y = 0; }}class Line { Point a; Point b; public Line() { this.a = new Point(); this.b = new Point(); } //求两直线的交点,斜
随机推荐
- 详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
- Python二分查找详解
- 使用jquery解析XML的方法
- 基于获取JAVA路径,包括CLASSPATH外的路径的方法详解
- 批量账号的login测试功能实现
- 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例教程
- ASP.NET MVC5网站开发之网站设置(九)
- 深入解析PHP垃圾回收机制对内存泄露的处理
- 详解C语言位域的使用与注意事项
- 如何利用Emacs来调试C++程序
- java-流的使用完结与异常处理机制(详解)
- python多重继承实例
- 浅谈EasyUI中编辑treegrid的方法
- zTree插件之单选下拉菜单实例代码
- c++将数组名作为函数参数对数组元素进行相应的运算
- phpBB BBcode处理的漏洞
- php事件驱动化设计详解
- AndroidStudio 配置 AspectJ 环境实现AOP的方法
- MySQL线程处于Opening tables的问题解决方法
- jQuery实现的下雪动画效果示例【附源码下载】