當我們使用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,...