pandas數(shù)據(jù)處理之取出重復數(shù)據(jù)實踐
pandas取出重復數(shù)據(jù)
平常我們用pandas做重復數(shù)據(jù)處理時,常常調(diào)用到drop_duplicates方法來去除重。
現(xiàn)在我不想完全去除重復,而是把重復數(shù)據(jù)輸出,現(xiàn)有數(shù)據(jù)如下所示:
dic = {'序號':[2,3,4,5,6,7,8,9,10,11,12,13,14,15],'地市縮寫': ['LF', 'CZ', 'HS', 'ZJ', 'TS', 'HD', '廣陽', 'CD', 'QH', 'XT', 'XA', 'BD', 'SJ', '欒城'],
'地市': ['廊坊', '滄州', '衡水', '張家口', '唐山', '邯鄲', '廊坊', '承德', '秦皇島', '邢臺', '雄安', '保定',
'石家莊', '石家莊']}
p_city = pd.DataFrame(dic)
print(p_city )輸出:

方法一
重復數(shù)據(jù)保留一個,duplicate_bool輸出的是bool類型值,通過判斷bool==True,取出重復行。
duplicate_bool = p_city.duplicated(subset=['地市'], keep='first') print(duplicate_bool ) repeat =p_city.loc[duplicate_bool == True] print(repeat)
輸出:

方法二
采用drop_duplicates對數(shù)據(jù)去兩次重,一次將重復數(shù)據(jù)全部去除(keep=False),一次將重復數(shù)據(jù)保留一個(keep=last/first),將兩個去重后的數(shù)據(jù)做差集,取出重復行。
# 重復數(shù)據(jù)全部去除 data1 = p_city.drop_duplicates(subset=['地市'], keep=False) print(data1)
輸出:

# 重復數(shù)據(jù)保留一個 data2 = p_city.drop_duplicates(subset=['地市'], keep='last') print(data2)
輸出:

# 做差集,取出重復行 data1 = p_city.drop_duplicates(subset=['地市'], keep=False) data2 = p_city.drop_duplicates(subset=['地市'], keep='last') repeat = pd.concat([data2,data1]).drop_duplicates(keep=False) print(repeat)
輸出:

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python+Django在windows下的開發(fā)環(huán)境配置圖解
Python+Django在windows下的開發(fā)環(huán)境配置圖解教程,需要的朋友可以參考下。2009-11-11
Python解析網(wǎng)頁源代碼中的115網(wǎng)盤鏈接實例
這篇文章主要介紹了Python解析網(wǎng)頁源代碼中的115網(wǎng)盤鏈接實例,主要采用了正則表達式re模塊來實現(xiàn)該功能,需要的朋友可以參考下2014-09-09

