應用場景:
假如我們有如下的乙個資料集,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...