pandas series.drop_duplicates() 方法中的 keep 参数如何工作?
pandas series 构造函数中的 drop_duplicate() 方法用于从 series 对象中删除重复值。此方法清除重复值并返回修改了行的 series,它不会更改原始 series 对象。相反,它将返回一个新的。
drop_duplicates() 方法中的一个重要参数是"Keep",此参数的默认值是"first",它保留第一个出现的值并删除其余值。我们还可以为 keep 参数指定 Last 和 False 值。
如果 keep=False,它将删除所有重复值。或者如果 keep="Last",它会删除除最后一次出现之外的重复值。
示例 1
在下面的例子中,我们首先使用带有字符串列表的 pandas series 方法创建了一个 pandas Series。稍后,我们通过设置 keep="last"应用了 drop_duplicates() 方法。
# 导入 pandas 包
import pandas as pd
# 创建具有重复值的 pandas 系列
series = pd.Series(['Robin', 'John', 'Nori', 'Yi', 'Robin', 'Amal', 'Nori'])
print(series)
# 使用 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"更改为"Last"。到"first"。
# 导入 pandas 包
导入 pandas 作为 pd
# 创建具有重复值的 pandas 系列
series = pd.Series(['Robin', 'John', 'Nori', 'Yi', 'Robin', 'Amal', 'Nori'])
print(series)
# 使用 keep='first' 删除重复值
result = series.drop_duplicates(keep='first')
print('Output:
',result)
输出
You will get the following output −
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 值起作用。我们首先创建了一个带有整数列表的系列对象,然后应用了该方法。
# 导入 pandas 包
导入 pandas 作为 pd
# 创建具有重复值的 pandas 系列
series = pd.Series([1,2,1,3,4,2,6,4,5])
print(series)
# 使用 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 将删除所有重复值,它会保留任何单个出现的情况。

