如何在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 次查看

启动你的职业生涯

完成课程获得认证

开始学习
广告