Python Dataframe 指定多列去重、求差集的方法
1)去重
指定多列去重,這是在dataframe沒(méi)有獨(dú)一無(wú)二的字段作為PK(主鍵)時(shí),需要指定多個(gè)字段一起作為該行的PK,在這種情況下對(duì)整體數(shù)據(jù)進(jìn)行去重。
Attention:主要用到了drop_duplicates方法,并設(shè)置參數(shù)subset為多個(gè)字段名構(gòu)成的數(shù)組。
具體代碼如下:
>>>import pandas as pd >>>data={'state':[1,1,2,2,1,2,2],'pop':['a','b','c','d','b','c','d']} >>>frame=pd.DataFrame(data) >>>frame pop state 0 a 1 1 b 1 2 c 2 3 d 2 4 b 1 5 c 2 6 d 2 >>>frame.drop_duplicates(subset=['pop','state']) pop state 0 a 1 1 b 1 2 c 2 3 d 2
2)求差集
假設(shè)有兩個(gè)dataframe為a和b,a和b可以是相互包含的關(guān)系,現(xiàn)在想要將a中和b重復(fù)的內(nèi)容去掉,也就是求差集,步驟如下:
(1)需要對(duì)兩個(gè)dataframe進(jìn)行去重。
(2)利用append方法,a=a.append(b)
(3)再次利用append方法,a=a.append(b)
(4)去重,利用drop_duplicates方法,a=a.drop_duplicates(),以及設(shè)置參數(shù)keep=False,意思就是只要有重復(fù),重復(fù)的記錄都去掉。(keep默認(rèn)='first',也就是保留第一條記錄)
具體代碼如下:
>>>data_a={'state':[1,1,2],'pop':['a','b','c']} >>>data_b={'state':[1,2,3],'pop':['b','c','d']} >>>a=pd.DataFrame(data_a) >>>a pop state 0 a 1 1 b 1 2 c 2 >>>b=pd.DataFrame(data_b) >>>b pop state 0 b 1 1 c 2 2 d 3 >>>a = a.append(b) >>>a = a.append(b) >>>result = a.drop_duplicates(subset=['pop','state'],keep=False) >>>result pop state 0 a 1
以上這篇Python Dataframe 指定多列去重、求差集的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之樹(shù)回歸詳解
這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之樹(shù)回歸的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Python scrapy爬取起點(diǎn)中文網(wǎng)小說(shuō)榜單
爬蟲(chóng)的基礎(chǔ)內(nèi)容已經(jīng)全部學(xué)玩,博主決定想著更加標(biāo)準(zhǔn)化以及實(shí)用能力更強(qiáng)的scrapy進(jìn)發(fā),今天記錄自己第一個(gè)scrapy爬蟲(chóng)項(xiàng)目. scrapy爬取起點(diǎn)中文網(wǎng)24小時(shí)熱銷榜單,需要的朋友可以參考下2021-06-06Python超有趣實(shí)例通過(guò)冒泡排序來(lái)實(shí)現(xiàn)LOL厄斐琉斯控槍
冒泡排序是一種簡(jiǎn)單的排序算法,它也是一種穩(wěn)定排序算法。其實(shí)現(xiàn)原理是重復(fù)掃描待排序序列,并比較每一對(duì)相鄰的元素,當(dāng)該對(duì)元素順序不正確時(shí)進(jìn)行交換。一直重復(fù)這個(gè)過(guò)程,直到?jīng)]有任何兩個(gè)相鄰元素可以交換,就表明完成了排序2022-05-05python實(shí)現(xiàn)時(shí)間o(1)的最小棧的實(shí)例代碼
這篇文章主要介紹了python實(shí)現(xiàn)時(shí)間o(1)的最小棧的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07基于PyQT5制作一個(gè)課堂點(diǎn)名系統(tǒng)
這篇文章主要為大家介紹一個(gè)基于PyQt5實(shí)現(xiàn)的抖音同款課堂點(diǎn)名系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-02-02windows下的pycharm安裝及其設(shè)置中文菜單
這篇文章主要介紹了windows下的pycharm安裝及其設(shè)置中文菜單,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Python3多目標(biāo)賦值及共享引用注意事項(xiàng)
這篇文章主要介紹了Python3多目標(biāo)賦值及共享引用注意事項(xiàng),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05