Python Dataframe 指定多列去重、求差集的方法
1)去重
指定多列去重,這是在dataframe沒有獨一無二的字段作為PK(主鍵)時,需要指定多個字段一起作為該行的PK,在這種情況下對整體數(shù)據(jù)進(jìn)行去重。
Attention:主要用到了drop_duplicates方法,并設(shè)置參數(shù)subset為多個字段名構(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è)有兩個dataframe為a和b,a和b可以是相互包含的關(guān)系,現(xiàn)在想要將a中和b重復(fù)的內(nèi)容去掉,也就是求差集,步驟如下:
(1)需要對兩個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 指定多列去重、求差集的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中動態(tài)創(chuàng)建類實例的方法
在Java中我們可以通過反射來根據(jù)類名創(chuàng)建類實例,那么在Python我們怎么實現(xiàn)類似功能呢?其實在Python有一個builtin函數(shù)import,我們可以使用這個函數(shù)來在運行時動態(tài)加載一些模塊2017-03-03
Python實現(xiàn)PDF文字識別提取并寫入CSV文件
這篇文章主要是和大家分享一個Python實現(xiàn)PDF文字識別與提取并寫入?CSV文件的腳本。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03
Python日期和時間戳的轉(zhuǎn)換的實現(xiàn)方式
Python中日期和時間的處理涉及到time和datetime模塊,time模塊可實現(xiàn)時間戳與格式化時間字符串的轉(zhuǎn)換,而datetime模塊則提供更加直接易用的接口,本文詳細(xì)給大家介紹了Python日期和時間戳的轉(zhuǎn)換的實現(xiàn)方式,需要的朋友可以參考下2024-10-10
Python調(diào)用SMTP服務(wù)自動發(fā)送Email的實現(xiàn)步驟
這篇文章主要介紹了Python調(diào)用SMTP服務(wù)自動發(fā)送Email的實現(xiàn)步驟,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02
python+opencv實現(xiàn)移動偵測(幀差法)
這篇文章主要為大家詳細(xì)介紹了python+opencv實現(xiàn)移動偵測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03

