在Pandas中,你可以使用drop_duplicates()
方法来高效地去除DataFrame中完全重复的行。这个方法会返回一个新的DataFrame,其中删除了所有重复的行。
import pandas as pd
# 假设你有一个DataFrame
df = pd.DataFrame({
'A': [1, 2, 2, 3],
'B': [4, 5, 5, 6],
'C': [7, 8, 8, 9]
})
# 去除完全重复的行
df_unique = df.drop_duplicates()
print(df_unique)
subset
: 可选参数,指定要考虑的列。默认情况下,所有列都会被考虑。keep
: 可选参数,决定保留哪个重复的行。可选值为:
'first'
(默认):保留第一个出现的重复行。'last'
:保留最后一个出现的重复行。False
:删除所有重复的行。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)
drop_duplicates()
方法在内部使用了哈希表来检测重复行,因此它的时间复杂度通常是O(n),其中n是DataFrame的行数。subset
参数可以减少计算量。使用drop_duplicates()
方法可以高效地去除Pandas DataFrame中完全重复的行。根据你的需求,你可以通过调整subset
、keep
和inplace
参数来定制去重行为。