pandas.DataFrame.drop_duplicates#

DataFrame.drop_duplicates(subset=None, *, keep='first', inplace=False, ignore_index=False)[源代码]#

返回删除重复行后的 DataFrame。

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

Parameters:
subset列标签或标签序列,可选

仅考虑特定列来识别重复项,默认使用所有列。

keep : {‘first’, ‘last’, False}, 默认 ‘first’{‘first’, ‘last’, False}, default ‘first’

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

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

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

  • False : 删除所有重复项。

inplace : bool, 默认 Falsebool, 默认

是修改 DataFrame 还是创建新的 DataFrame。

ignore_index : bool, 默认 Falsebool, 默认

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

Returns:
DataFrame 或 None

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

参见

DataFrame.value_counts

计算列的唯一组合的数量。

Examples

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

>>> 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