dask.dataframe.DataFrame.drop_duplicates

dask.dataframe.DataFrame.drop_duplicates

DataFrame.drop_duplicates(subset=None, split_every=None, split_out=1, shuffle_method=None, ignore_index=False, **kwargs)

返回删除重复行后的DataFrame。

此文档字符串是从 pandas.core.frame.DataFrame.drop_duplicates 复制而来的。

Dask 版本可能存在一些不一致性。

已知的不一致性:

keep=False 将引发一个 NotImplementedError

考虑某些列是可选的。索引,包括时间索引,将被忽略。

参数
子集列标签或标签序列,可选

仅考虑某些列来识别重复项,默认情况下使用所有列。

keep : {‘first’, ‘last’, False}, 默认 ‘first’ (Dask 不支持){‘first’, ‘last’,}

确定保留哪些重复项(如果有)。

  • ‘first’ : 删除重复项,除了第一次出现。

  • ‘last’ : 删除重复项,除了最后一次出现。

  • False : 删除所有重复项。

inplace : bool, 默认为 False (在 Dask 中不支持)布尔值,默认

是否修改 DataFrame 而不是创建一个新的。

ignore_index : bool, 默认 False布尔值,默认

如果 True ,生成的轴将被标记为 0, 1, …, n - 1。

返回
DataFrame 或 None

移除重复项后的DataFrame,如果 inplace=True 则为None。

参见

DataFrame.value_counts

计算列的唯一组合。

示例

考虑包含拉面评分的数据集。

>>> df = pd.DataFrame({  
...     'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
...     'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
...     'rating': [4, 4, 3.5, 15, 5]
... })
>>> df  
    brand style  rating
0  Yum Yum   cup     4.0
1  Yum Yum   cup     4.0
2  Indomie   cup     3.5
3  Indomie  pack    15.0
4  Indomie  pack     5.0

默认情况下,它会基于所有列删除重复行。

>>> df.drop_duplicates()  
    brand style  rating
0  Yum Yum   cup     4.0
2  Indomie   cup     3.5
3  Indomie  pack    15.0
4  Indomie  pack     5.0

要删除特定列(或多列)上的重复项,请使用 subset

>>> df.drop_duplicates(subset=['brand'])  
    brand style  rating
0  Yum Yum   cup     4.0
2  Indomie   cup     3.5

要删除重复项并保留最后出现的项,请使用 keep

>>> df.drop_duplicates(subset=['brand', 'style'], keep='last')  
    brand style  rating
1  Yum Yum   cup     4.0
2  Indomie   cup     3.5
4  Indomie  pack     5.0