pandas.DataFrame.drop_duplicates #

数据框。drop_duplicates (子集= None , * , keep = 'first' , inplace = False , ignore_index = False ) [来源] #

返回删除了重复行的 DataFrame。

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

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

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

保留{'first', 'last', False},默认'first'

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

  • 'first' :删除除第一次出现之外的重复项。

  • 'last' :删除除最后一次出现之外的重复项。

  • False:删除所有重复项。

就地布尔值,默认值False

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

ignore_index布尔值,默认False

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

返回
数据框或无

删除重复项的 DataFrame 或 None if inplace=True

也可以看看

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