如何删除 pandas 系列中的重复行?

pandasserver side programmingprogramming更新于 2025/5/22 0:22:17

使用 pandas 包的主要优势是分析数据以用于数据科学和机器学习应用。在分析数据的过程中,删除重复值是一项常用的数据清理任务。

要从 pandas 系列对象中删除重复值,我们可以使用 drop_duplicate() 方法。此方法返回已删除重复行的系列,并且不会更改原始系列对象。相反,它将返回一个新的。

通过使用 inplace 参数,我们可以通过设置"inplace=True"将更改更新到原始系列对象中。

drop_duplicates() 方法中的另一个重要参数是"Keep"。此参数的默认行为是"first",这意味着它会删除除第一次出现之外的重复值。此外,我们可以将其更改为最后和 False 出现。

示例 1

在下面的示例中,我们创建了一个带有字符串列表的 pandas 系列,并且我们还通过定义索引参数分配了索引标签。

# 导入 pandas 包
import pandas as pd

# 创建具有重复值的 pandas 系列
series = pd.Series(
   ['John','Garyooo','John','Richard','Peter','Richard','Gary'],
   index=['East','West','North','South','East','West','North'])

print(series)

# 删除重复值
result = series.drop_duplicates()

print('Output:',result)

解释

创建 series 对象后,我们应用 drop_duplicate() 方法而不更改默认参数。

Pandas series 如下所示 −

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_duplicate 方法返回一个删除了行的新系列对象。此处,原始系列对象不受此方法影响,而是返回一个新的系列对象。

示例 2

对于同一示例,我们将 inplace 参数值从默认的 False 更改为 True。

# 导入 pandas 包
import pandas as pd

# 创建具有重复值的 pandas 系列
series = pd.Series(
   ['John','Garyooo','John','Richard','Peter','Richard','Gary'],
   index=['East','West','North','South','East','West','North'])

print(series)

# 使用 inplace=True 删除重复值
result = series.drop_duplicates(inplace=True)

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

解释

通过将 True 值设置为 inplace 参数,我们可以修改原始系列对象,删除行,方法返回 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,我们成功更新了原始系列对象,其中包含已删除的行。我们可以在上面的输出块中看到输出,值"None"是 drop_duplicates() 方法的输出。


相关文章