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