如何删除 pandas 系列中的重复行?
使用 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() 方法的输出。

