Pandas標記刪除重覆記錄

2021-08-01 23:40:14 字數 4668 閱讀 6164

pandas提供了duplicated、index.duplicated、drop_duplicates函式來標記及刪除重覆記錄

duplicated函式用於標記series中的值、dataframe中的記錄行是否是重複,重複為true,不重複為false

pandas.dataframe.duplicated(self, subset=none, keep=』first』)

pandas.series.duplicated(self, keep=』first』)

其中引數解釋如下:

subset:用於識別重複的列標籤或列標籤序列,預設所有列標籤

keep=『frist』:除了第一次出現外,其餘相同的被標記為重複

keep=』last』:除了最後一次出現外,其餘相同的被標記為重複

keep=false:所有相同的都被標記為重複

[python]view plain

copy

print?

import numpy as np  

import pandas as pd   

#標記dataframe重複例子

df = pd.dataframe(,index=[『a』, 『a』, 『b』, 『c』, 『b』, 『a』,『c』])  

#duplicated(self, subset=none, keep=』first』)

#根據列名標記

#keep=』first』

df.duplicated()#預設所有列,無重覆記錄

df.duplicated(』col1』)#第

二、四、五行被標記為重複

df.duplicated([』col1』,『col2』])#第五行被標記為重複

#keep=』last』

df.duplicated(』col1』,『last』)#第

一、三、四行被標記重複

df.duplicated([』col1』,『col2』],keep=『last』)#第三行被標記為重複

#keep=false

df.duplicated(』col1』,false)#series([true,true,true,true,true,false,false],index=[『a』,』a』,』b』,』c』,』b』,』a』,』c』])

df.duplicated([』col1』,『col2』],keep=false)#在col1和col2列上出現相同的,都被標記為重複

type(df.duplicated([』col1』,『col2』],keep=false))#pandas.core.series.series

#根據索引標記

df.index.duplicated()#預設keep=』first』,第

二、五、七行被標記為重複

df.index.duplicated(keep=』last』)#第

一、二、三、四被標記為重複

df[df.index.duplicated()]#獲取重覆記錄行

df[~df.index.duplicated(』last』)]#獲取不重覆記錄行

#標記series重複例子

#duplicated(self, keep=』first』)

s = pd.series([』one』, 『one』, 『two』, 『two』, 『two』, 『three』, 『four』] ,index= [『a』, 『a』, 『b』, 『c』, 『b』, 『a』,『c』],name=『sname』)  

s.duplicated()  

s.duplicated(』last』)  

s.duplicated(false)  

#根據索引標記

s.index.duplicated()  

s.index.duplicated(』last』)  

s.index.duplicated(false)  

import numpy as np

import pandas as pd

#標記dataframe重複例子 df = pd.dataframe(,index=['a', 'a', 'b', 'c', 'b', 'a','c']) #duplicated(self, subset=none, keep='first') #根據列名標記 #keep='first' df.duplicated()#預設所有列,無重覆記錄 df.duplicated('col1')#第

二、四、五行被標記為重複 df.duplicated(['col1','col2'])#第五行被標記為重複 #keep='last' df.duplicated('col1','last')#第

一、三、四行被標記重複 df.duplicated(['col1','col2'],keep='last')#第三行被標記為重複 #keep=false df.duplicated('col1',false)#series([true,true,true,true,true,false,false],index=['a','a','b','c','b','a','c']) df.duplicated(['col1','col2'],keep=false)#在col1和col2列上出現相同的,都被標記為重複 type(df.duplicated(['col1','col2'],keep=false))#pandas.core.series.series #根據索引標記 df.index.duplicated()#預設keep='first',第

二、五、七行被標記為重複 df.index.duplicated(keep='last')#第

一、二、三、四被標記為重複 df[df.index.duplicated()]#獲取重覆記錄行 df[~df.index.duplicated('last')]#獲取不重覆記錄行 #標記series重複例子 #duplicated(self, keep='first') s = pd.series(['one', 'one', 'two', 'two', 'two', 'three', 'four'] ,index= ['a', 'a', 'b', 'c', 'b', 'a','c'],name='sname') s.duplicated() s.duplicated('last') s.duplicated(false) #根據索引標記 s.index.duplicated() s.index.duplicated('last') s.index.duplicated(false)

drop_duplicates函式用於刪除series、dataframe中重覆記錄,並返回刪除重複後的結果

pandas.dataframe.drop_duplicates(self, subset=none, keep=』first』, inplace=false)

pandas.series.drop_duplicates(self, keep=』first』, inplace=false)

[python]view plain

copy

print?

#刪除dataframe重覆記錄例子

#drop_duplicates(self, subset=none, keep=』first』, inplace=false)

df.drop_duplicates()  

df.drop_duplicates(』col1』)#刪除了df.duplicated(『col1』)標記的重覆記錄

df.drop_duplicates(』col1』,『last』)#刪除了df.duplicated(『col1』,』last』)標記的重覆記錄

df1.drop_duplicates([』col1』,『col2』])#刪除了df.duplicated([『col1』,』col2』])標記的重覆記錄

df.drop_duplicates(』col1』,keep=『last』,inplace=true)#inplace=true表示在原dataframe上執行刪除操作

df.drop_duplicates(』col1』,keep=『last』,inplace=false)#inplace=false返回乙個副本

#刪除series重覆記錄例子

#drop_duplicates(self, keep=』first』, inplace=false)

s.drop_duplicates()  

#刪除dataframe重覆記錄例子
#drop_duplicates(self, subset=none, keep='first', inplace=false) df.drop_duplicates() df.drop_duplicates('col1')#刪除了df.duplicated('col1')標記的重覆記錄 df.drop_duplicates('col1','last')#刪除了df.duplicated('col1','last')標記的重覆記錄 df1.drop_duplicates(['col1','col2'])#刪除了df.duplicated(['col1','col2'])標記的重覆記錄 df.drop_duplicates('col1',keep='last',inplace=true)#inplace=true表示在原dataframe上執行刪除操作 df.drop_duplicates('col1',keep='last',inplace=false)#inplace=false返回乙個副本 #刪除series重覆記錄例子 #drop_duplicates(self, keep='first', inplace=false) s.drop_duplicates()

Pandas標記刪除重覆記錄

pandas提供了duplicated index.duplicated drop duplicates函式來標記及刪除重覆記錄 duplicated函式用於標記series中的值 dataframe中的記錄行是否是重複,重複為true,不重複為false pandas.dataframe.dupl...

Pandas標記刪除重覆記錄

duplicated函式用於標記series中的值 dataframe中的記錄行是否是重複,重複為true,不重複為false pandas.dataframe.duplicated self,subset none,keep first pandas.series.duplicated self,...

刪除重覆記錄

我們經常在資料庫中有重複的記錄這時候我們希望刪除那些重複的記錄 你不要告訴我你是一條條手動刪除的哈 select distinct into newtable form 程式設計客棧nbsp tablename drop table tabwww.cppcns.comlename select in...