pandas 找出 刪除重複的資料(Python)

2021-10-25 19:40:25 字數 3459 閱讀 8233

當我們使用pandas處理資料的時候,經常會遇到資料重複的問題,如何找出重複資料進而分析重複原因,或者如何直接刪除重複的資料是乙個關鍵的步驟,pandas提供了很方便的方法:duplicated()和drop_duplicates()。

duplicated()可以被用在dataframe的三種情況下,分別是pandas.dataframe.duplicated、pandas.series.duplicated和pandas.index.duplicated。他們的用法都類似,前兩個會返回乙個布林值的series,最後乙個會返回乙個布林值的numpy.ndarray。

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

subset:預設為none,需要標記重複的標籤或標籤序列

keep:預設為『first』,如何標記重複標籤

series.duplicated(keep=『first』)

keep:與dataframe.duplicated的keep相同

index.duplicated(keep=『first』)

keep:與dataframe.duplicated的keep相同

例子

import pandas as pd

df = pd.dataframe(

)df

brand style  rating

0 yum yum cup 4.0

1 yum yum cup 4.0

2 indomie cup 3.5

3 indomie pack 15.0

4 indomie pack 5.0

df.duplicated(

)

0

false

1true

2false

3false

4false

dtype:

bool

df.duplicated(keep=

'last'

)

0

true

1false

2false

3false

4false

dtype:

bool

df.duplicated(keep=

false

)

0

true

1true

2false

3false

4false

dtype:

bool

df.duplicated(subset=

['brand'

])

0

false

1true

2false

3true

4true

dtype:

bool

關於index的重複標記:

df = df.set_index(

'brand'

)df

style  rating

brand

yum yum cup 4.0

yum yum cup 4.0

indomie cup 3.5

indomie pack 15.0

indomie pack 5.0

df.index.duplicated(

)

array(

[false

,true

,false

,true

,true

])

與duplicated()類似,drop_duplicates()是直接把重複值給刪掉。下面只會介紹一些含義不同的引數。

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

subset:與duplicated()中相同

keep:與duplicated()中相同

inplace:與pandas其他函式的inplace相同,選擇是修改現有資料還是返回新的資料

series.drop_duplicates()相比series.duplicated()也是多了乙個inplace引數,和上訴介紹一樣,index.drop_duplicates()與index.duplicated()引數相同就不做贅述。下面是例子:

df = pd.dataframe(

)df

brand style  rating

0 yum yum cup 4.0

1 yum yum cup 4.0

2 indomie cup 3.5

3 indomie pack 15.0

4 indomie pack 5.0

df.drop_duplicates(

)

brand style  rating

0 yum yum cup 4.0

2 indomie cup 3.5

3 indomie pack 15.0

4 indomie pack 5.0

df.drop_duplicates(inplace =

true

)df

brand style  rating

0 yum yum cup 4.0

2 indomie cup 3.5

3 indomie pack 15.0

4 indomie pack 5.0

有剩餘無,pandas有很多好用的庫,但是系統學下來很不現實,都是在實際專案中不斷的發現、積累、記錄下來。

Pandas標記刪除重覆記錄

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

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,...