插件窝 干货文章 Pandas如何高效去除DataFrame中完全相同的重复行?

Pandas如何高效去除DataFrame中完全相同的重复行?

重复 DataFrame duplicates 去除 706    来源:    2025-03-13

在Pandas中,可以使用drop_duplicates()方法来高效去除DataFrame中完全相同的重复行。这个方法会返回一个新的DataFrame,其中删除了所有重复的行。

基本用法

import pandas as pd

# 创建一个示例DataFrame
data = {
    'A': [1, 2, 2, 3],
    'B': [4, 5, 5, 6],
    'C': [7, 8, 8, 9]
}
df = pd.DataFrame(data)

# 去除完全相同的重复行
df_unique = df.drop_duplicates()

print(df_unique)

参数说明

  • keep: 控制保留哪个重复行。默认值为'first',表示保留第一次出现的重复行;'last'表示保留最后一次出现的重复行;False表示删除所有重复行。
  • subset: 指定要考虑的列。默认情况下,所有列都会被考虑。如果你只想根据某些列来去除重复行,可以使用这个参数。
  • inplace: 如果设置为True,则直接在原DataFrame上进行修改,而不是返回一个新的DataFrame。

示例

# 只考虑列'A'和'B'来去除重复行
df_unique_subset = df.drop_duplicates(subset=['A', 'B'])

# 保留最后一次出现的重复行
df_unique_last = df.drop_duplicates(keep='last')

# 直接在原DataFrame上修改
df.drop_duplicates(inplace=True)

性能优化

  • 如果DataFrame非常大,可以考虑使用ignore_index=True参数来重置索引,以避免不必要的索引操作。
  • 如果内存有限,可以考虑使用dask库来处理大型DataFrame,它支持分布式计算。

总结

drop_duplicates()是Pandas中去除重复行的标准方法,使用简单且高效。根据具体需求,可以通过调整参数来灵活控制去重行为。