Hi,好久不见,我还是那颗翻滚的老鼠屎。处理数据时想求两个表格求不相交的部分,或许是对知识的匮乏限制了我的想象力,并未找到直接求的方法,在这里介绍老鼠屎技己使用的方法,希望对读者会有帮助。

\"pandas求两个表格不相交的集合\"

阴影部分为所要求的部分(但是前提是A、B两个集合都是无重复内容的集合)

首先先造两个Data 来做示例。

import pandas as pd 
a0={\"number\":range(10),\"letter\":[\"a\",\"a\",\"b\",\"b\",\"c\",\"f\",\"f\",\"e\",\"h\",\"w\"]} 
a=pd.Data (a0) 
b0={\"number\":range(15),\"letter\":[\"b\",\"a\",\"t\",\"b\",\"r\",\"f\",\"g\",\"e\",\"j\",\"w\",\"t\",\"h\",\"i\",\"y\",\"u\"]} 
b=pd.Data (b0) 

看一下两个Data 的样子

\"pandas求两个表格不相交的集合\"

关于差集,我们是要去除两个Data 中公共的部分,因此我的想法是:

(1)先将两个Data 融合为一个Data ;

(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求两个表格不相交的集合\"

同样的道理可用来求差集,在此不做赘述。

以上这篇pandas求两个表格不相交的集合方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

收藏 打印