您好,登錄后才能下訂單哦!
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求兩個表格不相交的集合方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。