Pandas 是一个广泛使用的 Python 数据处理库,它提供了许多实用的数据清理和整理功能,其中包括删除重复行的能力。下面将详细介绍如何通过 Pandas 的 drop_duplicates()
方法来删除数据中的重复行:
- 基本用法
- 全部列去重:
drop_duplicates()
方法默认会考虑所有列,删除除第一个出现之外的所有重复行。例如,对于包含重复行的 DataFrame,直接使用df.drop_duplicates()
就可以去除这些重复行。 - 示例代码:
import pandas as pd data = {'Column1': [1, 2, 2, 3, 3, 3], 'Column2': ['A', 'B', 'B', 'C', 'C', 'D']} df = pd.DataFrame(data) df_unique = df.drop_duplicates()
-
- 参数说明
- subset:此参数允许用户指定基于哪些列来检查重复项。如果只希望基于某一列(或几列)去除重复,可以这样做:
df.drop_duplicates(subset='Column1')
。 - keep:该参数控制如何处理重复项。默认值为 'first',表示保留每个重复组的第一个出现。还可以设置为 'last' 来保留最后一个出现的重复行,或者设置为 False 来删除所有重复行。
- 保留每个重复组的最后一个出现:
df_unique_last = df.drop_duplicates(keep='last')
- 删除所有重复行:
df_unique_none = df.drop_duplicates(keep=False)
- 保留每个重复组的最后一个出现:
- inplace:默认为 False,意味着操作会返回一个新的 DataFrame,不会改变原 DataFrame。如果设置为 True,则会在原 DataFrame 上进行修改,不会返回新对象。直接在原 DataFrame 上操作:
df.drop_duplicates(inplace=True)
- subset:此参数允许用户指定基于哪些列来检查重复项。如果只希望基于某一列(或几列)去除重复,可以这样做:
- 实际应用
- 大量数据处理:在使用
drop_duplicates()
处理大型数据集时,需要注意内存消耗,因为它需要比较数据以识别重复项。这种方法在处理数万到数十万行的数据时表现良好,但在处理更大的数据集时可能需要更谨慎地管理内存使用。 - 索引去重:如果 DataFrame 有指定索引列,并且想基于索引去重,确保索引是唯一的,或者明确将索引包含在
subset
参数中。
- 大量数据处理:在使用
- 全部列去重: