python用drop_duplicates()函數(shù)保留數(shù)據(jù)集的重復(fù)行

? ? ?? 前兩天處理數(shù)據(jù)的時候,需要得到兩個數(shù)據(jù)的交集數(shù)據(jù),所以要去除數(shù)據(jù)中非重復(fù)部分,只保留數(shù)據(jù)中的重復(fù)部分。

? ? ?? 網(wǎng)上看了一下大家的教程,大部分都是教去除重復(fù)行,很少有說到僅保留重復(fù)行的。所以在這里用drop_duplicates這個去重函數(shù)來實現(xiàn)這個功能。

drop_duplicates函數(shù)介紹

data.drop_duplicates(subset=[‘A’,‘B’],keep=‘first’,inplace=True)

#subset對應(yīng)的值是列名,表示只考慮這兩列,將這兩列對應(yīng)值相同的行進(jìn)行去重。

默認(rèn)值為subset=None表示考慮所有列。

keep='first’表示保留第一次出現(xiàn)的重復(fù)行,是默認(rèn)值。

keep另外兩個取值為"last"和False,分別表示保留最后一次出現(xiàn)的重復(fù)行和去除所有重復(fù)行。

inplace=True表示直接在原來的DataFrame上刪除重復(fù)項,而默認(rèn)值False表示生成一個副本。


要用函數(shù)取得數(shù)據(jù)集data中的重復(fù)列,分三個步驟

(提前導(dǎo)入pandas模塊)

data0_1 = data.drop_duplicates() #保留第一個重復(fù)行

data0_2 = data.drop_duplicates(keep=False) #去除所有重復(fù)行

data0_3=pd.concat([data0_1,data0_2]).drop_duplicates(keep=False)

#合并起來再去重,只剩下真的重復(fù)行。


舉例:data中wangwu行和tony行重復(fù),需要把它們兩行取出。

第一步:#保留第一個重復(fù)行

第二步:#去除所有重復(fù)行

第三步:#合并起來再去重

通過以上步驟實現(xiàn)取出數(shù)據(jù)中的重復(fù)行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容