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

首先先造两个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的样子

       

a                      b

    关于差集,我们是要去除两个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",分别对应在有多项重复时,保留第一项(或最后一项)。具体可参考官方文档

    得到的效果是虽然过程很简单,但是很好用

    同样的道理可用来求差集。

 

原文地址: https://blog.csdn.net/LaoChengZier/article/details/80459678

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值