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