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)
解释
在创建 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方法返回一个删除了行的新series对象。原始series对象不受此方法的影响,而是返回一个新的series对象。
示例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,我们可以修改原始的series对象,并且该方法的输出为None。
Pandas的series如下所示:
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,我们成功更新了原始系列对象,并删除了行。我们可以在上面的输出块中看到输出,而”value:None”是drop_duplicates()方法的输出。