pandas 去掉 保留重複行

2021-10-04 02:21:38 字數 1578 閱讀 5961

應用場景:

假如我們有如下的乙個資料集,6行4列。

此時,我們3個想法。

第乙個想法:把所有重複的行去掉

第二個想法:只保留第一次出現的重複行

第三個想法:保留最後一次出現的重複行

這三個想法都可以用pandas中自帶乙個方法實現。dataframe.drop_duplicates()

具體實現如下:

import pandas as pd 

newdata=pd.dataframe(

[[1,1,1,1],[1,1,1,1],[2,1,4,3],[5,6,7,9],[5,4,2,1],[2,1,4,9]

],columns=

['a','b','c','d'

])

newdata.drop_duplicates(subset=

['a','b','c','d'

],keep=false)

上面這一句**就是把所有重複的行去掉,subset這個引數後面我會提到,keep這個引數就是選擇我們前面三個想法中的哪乙個?

當keep=false時,就是去掉所有的重複行

當keep=『first』時,就是保留第一次出現的重複行

當keep='last』時就是保留最後一次出現的重複行。(注意,這裡的引數是字串)

可以看到,第0行和第1行都被去掉了。

可以看到,第1行被去掉,保留了第0行。當keep='last』時這裡就不演示了。

下面講一下subset這個引數。

在上面的場景中,我們對重複的定義是:在某一行,若a、b、c、d這四列如果都相同的話就是重複。

但是有時候,我們重複並不需要所有列都相同,我們只需要其中的某幾列相同就可以當作重複。因此subset這個引數就是來設定這個的。

舉個栗子,還是上面這個資料集,如果我們想把a列和b列中元素相同的行去掉,只保留第一次出現的行,要怎麼做?

很簡單,

從結果上我們可以看到,第0行和第1行由於a列b列相同,而且選擇保留第一次出現的行,所以第1行被去掉。

第2行和第5行的a列b列相同,保留第一次出現的行,所以第5行被去掉。

pandas 去除重複行

方法 dataframe.drop duplicates subset none,keep first inplace false 1引數 這個drop duplicate方法是對dataframe格式的資料,去除特定列下面的重複行。返回dataframe格式的資料。subset column la...

datatable去掉重複行的方法

去掉datatablegwiql中 所有列的資料都相同 重複的行 複製 如下 dat iew dv dt3.defaultvwww.cppcns.comiew dt3預設的虛擬檢視 wmid asc gwiql排序 列名,列名,列名 第乙個引數,true 去除重複,false 不去除 第二個引數,需...

oracle去除重複行資料(保留重複行的一行)

在oracle實際應用過程中,可能會遇到沒有設定主鍵的表,會出現表的資料重複的情況,比如誤操作重複執行插值語句且直接commit,這時候就需要刪除重複資料,只保留單一資料,話不多說,走起。建表語句 建個簡單的表練手就好 create table del name varchar2 30 val nu...