Pandas 在series.drop_duplicates()方法中,keep参数如何工作
pandas series构造函数中的drop_duplicates()方法用于从series对象中删除重复值。该方法清除重复值,并返回修改后的series,不会修改原始series对象,而是返回一个新的series。
drop_duplicates()方法中的一个重要参数是“keep”,该参数的默认值是“first”,它保留第一次出现的值并删除剩余的值。我们还可以指定Last和False值给keep参数。
如果keep=False,则会删除所有重复值。或者如果keep=“Last”,则会删除除了最后一次出现的重复值。
示例1
在下面的示例中,我们首先使用pandas series方法和字符串列表创建了一个pandas Series。然后,我们使用drop_duplicates()方法并将keep设置为“last”。
# import pandas package
import pandas as pd
# create pandas series with duplicate values
series = pd.Series(['Robin', 'John', 'Nori', 'Yi', 'Robin', 'Amal', 'Nori'])
print(series)
# delete duplicate values with keep='last'
result = series.drop_duplicates(keep='last')
print('Output:
',result)
输出
输出如下−
0 Robin
1 John
2 Nori
3 Yi
4 Robin
5 Amal
6 Nori
dtype: object
Output:
1 John
3 Yi
4 Robin
5 Amal
6 Nori
dtype: object
值“Robin”在索引位置“0”和“4”中重复出现,“Nori”在位置“2”和“6”中也重复出现。
通过将keep=Last设置,我们成功删除了索引位置0和2的值。
示例2
对于相同的示例,我们将keep参数的值从“last”更改为“first”。
# import pandas package
import pandas as pd
# create pandas series with duplicate values
series = pd.Series(['Robin', 'John', 'Nori', 'Yi', 'Robin', 'Amal', 'Nori'])
print(series)
# delete duplicate values with keep='first'
result = series.drop_duplicates(keep='first')
print('Output:
',result)
输出
您将获得以下输出−
0 Robin
1 John
2 Nori
3 Yi
4 Robin
5 Amal
6 Nori
dtype: object
Output:
0 Robin
1 John
2 Nori
3 Yi
5 Amal
dtype: object
对于上述输出,删除了重复的值“4”和“6”,因为值“Robin”和“Nori”首次出现在“0”和“2”的位置。
示例3
在此示例中,我们将看到drop_duplicates()方法在保留值为False时的工作方式。我们首先创建了一个包含整数列表的序列对象,然后应用了这个方法。
# import pandas package
import pandas as pd
# create pandas series with duplicate values
series = pd.Series([1,2,1,3,4,2,6,4,5])
print(series)
# delete duplicate values with keep=False
result = series.drop_duplicates(keep=False)
print('Output:
',result)
输出
输出如下 –
0 1
1 2
2 1
3 3
4 4
5 2
6 6
7 4
8 5
dtype: int64
Output:
3 3
6 6
8 5
dtype: int64
从drop_duplicates()方法得到的结果系列对象只有3行,而原始系列对象有9行。这是由于使用keep=False会删除所有重复值,它不会保留任何单个出现的值。