如何在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`”。
广告