pandas.DataFrame.drop_duplicates#
- DataFrame.drop_duplicates(subset=None, *, keep='first', inplace=False, ignore_index=False)[源代码]#
返回已删除重复行的 DataFrame。
考虑特定列是可选的。索引(包括时间索引)将被忽略。
- 参数:
- subset列标签或标签的可迭代对象,可选
仅考虑特定列来标识重复项,默认情况下使用所有列。
- keep{‘first’, ‘last’,
False}, 默认为 ‘first’ 确定保留哪些重复项(如果有)。
‘first’ : 删除重复项,但保留第一个出现的。
‘last’ : 删除重复项,但保留最后一个出现的。
False: 删除所有重复项。
- inplacebool, 默认为
False 是否修改 DataFrame 而不是创建新 DataFrame。
- ignore_indexbool, 默认为
False 如果为
True,则结果轴将标记为 0, 1, ..., n - 1。
- 返回:
- DataFrame 或 None
已删除重复项的 DataFrame,如果
inplace=True则为 None。
另请参阅
DataFrame.value_counts计算列的唯一组合的计数。
注意
此方法要求
subset指定的列为可哈希类型。传递不可哈希列将引发TypeError。示例
考虑包含拉面评分的数据集。
>>> 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