如何在pandas序列中刪除重複行?


使用pandas包的主要優勢在於分析資料科學和機器學習應用程式的資料。在分析資料的過程中,刪除重複值是一種常用的資料清洗任務。

要從pandas序列物件中刪除重複值,可以使用`drop_duplicates()`方法。此方法返回一個刪除了重複行的序列,並且不會更改原始序列物件。相反,它將返回一個新的序列物件。

透過使用`inplace`引數,我們可以透過設定“`inplace=True`”將更改更新到原始序列物件中。

`drop_duplicates()`方法中的另一個重要引數是“`keep`”。此引數的預設行為是“`first`”,這意味著它會刪除重複值,但保留第一次出現的那個值。此外,我們也可以將其更改為`last`和`False`。

示例1

在下面的示例中,我們建立了一個包含字串列表的pandas序列,並且還透過定義索引引數來指定索引標籤。

# import pandas package
import pandas as pd

# create pandas series with duplicate values
series = pd.Series(
   ['John','Garyooo','John','Richard','Peter','Richard','Gary'],
   index=['East','West','North','South','East','West','North'])

print(series)

# delete duplicate values
result = series.drop_duplicates()

print('Output:',result)

說明

建立序列物件後,我們應用了`drop_duplicates()`方法,而沒有更改預設引數。

Pandas序列如下所示:

East       John
West    Garyooo
North      John
South   Richard
East      Peter
West    Richard
North      Gary
dtype: object

輸出

輸出如下:

East       John
West    Garyooo
South   Richard
East      Peter
North      Gary
dtype:   object

`drop_duplicates`方法返回一個刪除了重複行的新序列物件。此處原始序列物件不受此方法影響,而是返回一個新的序列物件。

示例2

對於同一個示例,我們將`inplace`引數的值從預設的`False`更改為`True`。

# import pandas package
import pandas as pd

# create pandas series with duplicate values
series = pd.Series(
   ['John','Garyooo','John','Richard','Peter','Richard','Gary'],
   index=['East','West','North','South','East','West','North'])

print(series)

# delete duplicate values with inplace=True
result = series.drop_duplicates(inplace=True)

print('Output:
',result) print(series)

說明

透過為`inplace`引數設定`True`值,我們可以修改原始序列物件,刪除重複行,並且該方法返回`None`作為其輸出。

Pandas序列如下所示:

East       John
West    Garyooo
North      John
South   Richard
East      Peter
West    Richard
North      Gary
dtype: object

輸出

輸出如下:

Output: None

East       John
West    Garyooo
South   Richard
East      Peter
North      Gary
dtype: object

透過設定`inplace=True`,我們已成功更新了包含已刪除行的原始序列物件。我們可以在上面的輸出塊中看到輸出,`drop_duplicates()`方法的輸出值為“`None`”。

更新於:2022年3月4日

922 次檢視

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告