在处理 csv 文件的时候遇到了需要去除重复行的问题,Pandas 中提供了相关方法来处理重复数据。

判断重复项

duplicated(subset=None, keep="first")

返回一个布尔向量(Series),其长度为行数,表示行是否重复。

  • subset:用于识别重复的列标签或列标签序列,默认识别所有的列标签

  • keep:标记重复项,取值可以为 first、last、False

    • first:(默认值)从前向后查找,除了第一次出现外,其余相同的被标记为重复

    • last:从后向前查找,除了最后一次出现外,其余相同的被标记为重复

    • False:标记所有重复项

删除重复项

drop_duplicates(subset=None, keep="first", inplace=False)

删除重复的行并返回去重后的 DataFrame 数据。

  • subset:用于识别重复的列标签或列标签序列,默认识别所有的列标签

  • keep:删除重复项,取值可以为 first、last、False

    • first:(默认值)从前向后查找,保留第一次出现外,删除其余重复项

    • last:从后向前查找,保留最后一次出现外,删除其余重复项

    • False:删除所有重复项

  • inplace:是否直接修改原数据

示例

只根据部分列的值来删除重复行:

  • 若有列名:subset=['列名1', '列名2']

  • 若无列名:subset=[1, 2]subset=list(range(0, 10))