? ? ?? 前兩天處理數(shù)據(jù)的時(shí)候,需要得到兩個(gè)數(shù)據(jù)的交集數(shù)據(jù),所以要去除數(shù)據(jù)中非重復(fù)部分弦牡,只保留數(shù)據(jù)中的重復(fù)部分友驮。
? ? ?? 網(wǎng)上看了一下大家的教程,大部分都是教去除重復(fù)行喇伯,很少有說(shuō)到僅保留重復(fù)行的喊儡。所以在這里用drop_duplicates這個(gè)去重函數(shù)來(lái)實(shí)現(xiàn)這個(gè)功能。
drop_duplicates函數(shù)介紹:
data.drop_duplicates(subset=[‘A’,‘B’],keep=‘first’,inplace=True)
#subset對(duì)應(yīng)的值是列名稻据,表示只考慮這兩列艾猜,將這兩列對(duì)應(yīng)值相同的行進(jìn)行去重。
默認(rèn)值為subset=None表示考慮所有列捻悯。
keep='first’表示保留第一次出現(xiàn)的重復(fù)行匆赃,是默認(rèn)值。
keep另外兩個(gè)取值為"last"和False今缚,分別表示保留最后一次出現(xiàn)的重復(fù)行和去除所有重復(fù)行算柳。
inplace=True表示直接在原來(lái)的DataFrame上刪除重復(fù)項(xiàng),而默認(rèn)值False表示生成一個(gè)副本姓言。
要用函數(shù)取得數(shù)據(jù)集data中的重復(fù)列瞬项,分三個(gè)步驟:
(提前導(dǎo)入pandas模塊)
data0_1 = data.drop_duplicates() #保留第一個(gè)重復(fù)行
data0_2 = data.drop_duplicates(keep=False) #去除所有重復(fù)行
data0_3=pd.concat([data0_1,data0_2]).drop_duplicates(keep=False)
#合并起來(lái)再去重,只剩下真的重復(fù)行何荚。
舉例:data中wangwu行和tony行重復(fù)囱淋,需要把它們兩行取出。
第一步:#保留第一個(gè)重復(fù)行
第二步:#去除所有重復(fù)行
第三步:#合并起來(lái)再去重
通過(guò)以上步驟實(shí)現(xiàn)取出數(shù)據(jù)中的重復(fù)行餐塘。