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

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

重复 DataFrame 示例 一个 791    来源:    2025-03-13

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

示例代码

import pandas as pd

# 创建一个示例DataFrame
data = {
    'A': [1, 2, 2, 3, 4],
    'B': [5, 6, 6, 7, 8],
    'C': [9, 10, 10, 11, 12]
}

df = pd.DataFrame(data)

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

print(df_unique)

输出结果

   A  B   C
0  1  5   9
1  2  6  10
3  3  7  11
4  4  8  12

参数说明

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

示例:使用subset参数

# 只根据列'A'和'B'来判断重复行
df_unique_subset = df.drop_duplicates(subset=['A', 'B'])

print(df_unique_subset)

输出结果

   A  B   C
0  1  5   9
1  2  6  10
3  3  7  11
4  4  8  12

示例:使用keep参数

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

print(df_unique_last)

输出结果

   A  B   C
0  1  5   9
2  2  6  10
3  3  7  11
4  4  8  12

示例:使用inplace参数

# 直接在原DataFrame上删除重复行
df.drop_duplicates(inplace=True)

print(df)

输出结果

   A  B   C
0  1  5   9
1  2  6  10
3  3  7  11
4  4  8  12

通过这些方法,你可以高效地去除Pandas DataFrame中完全重复的行。