Pandas 在series.drop_duplicates()方法中,keep参数如何工作

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会删除所有重复值,它不会保留任何单个出现的值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记