Pandas 系列中的 keep 参数在 drop_duplicates() 方法中是如何工作的?


Pandas 系列构造函数中的 drop_duplicate() 方法用于从系列对象中删除重复值。此方法清理重复值并返回一个包含修改行的新系列,并且不会更改原始系列对象。相反,它将返回一个新的系列对象。

drop_duplicates() 方法中的一个重要参数是“Keep”,此参数的默认值为“first”,它保留第一次出现的数值并删除其余的。我们还可以为 keep 参数指定 Last 和 False 值。

如果 keep=False,它将删除所有重复值。或者如果 keep=“Last”,它将删除重复值,除了最后一次出现的值。

示例 1

在下面的示例中,我们首先使用 Pandas 系列方法和字符串列表创建了一个 Pandas 系列。稍后,我们通过设置 keep=“last”应用了 drop_duplicates() 方法。

# 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() 方法对于 keep=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 将删除所有重复值,它不保留任何单个出现的值。

更新于: 2022-03-04

401 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告