1. 程式人生 > >pandas求兩個表格不相交的集合

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",分別對應在有多項重複時,保留第一項(或最後一項)。具體可參考
官方文件

    得到的效果是雖然過程很簡單,但是很好用

    同樣的道理可用來求差集。