Pandas 数据去重
在数据处理过程中,重复数据是一个常见的问题。重复数据不仅会占用额外的存储空间,还可能导致分析结果出现偏差。因此,数据去重是数据清洗中的一个重要步骤。本文将详细介绍如何使用Pandas进行数据去重,并通过实际案例帮助你更好地理解这一概念。
什么是数据去重?
数据去重是指从数据集中删除重复的行或列,以确保每条数据都是唯一的。在Pandas中,我们可以使用 drop_duplicates()
方法来实现这一操作。
基本用法
删除完全重复的行
假设我们有一个包含重复行的数据集:
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
'Age': [25, 30, 35, 25, 30],
'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Los Angeles']
}
df = pd.DataFrame(data)
print(df)
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
3 Alice 25 New York
4 Bob 30 Los Angeles
我们可以看到,第0行和第3行,第1行和第4行是完全重复的。我们可以使用 drop_duplicates()
方法来删除这些重复行:
df_unique = df.drop_duplicates()
print(df_unique)
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
基于特定列去重
有时候,我们可能只关心某些列是否重复,而不需要所有列都完全相同。例如,我们可能只关心 Name
列是否重复:
df_unique_name = df.drop_duplicates(subset=['Name'])
print(df_unique_name)
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
在这个例子中,即使 Age
和 City
列不同,只要 Name
列相同,就会被视为重复行并被删除。
保留重复行中的第一条或最后一条
默认情况下,drop_duplicates()
会保留重复行中的第一条记录。如果你想保留最后一条记录,可以使用 keep
参数:
df_unique_last = df.drop_duplicates(keep='last')
print(df_unique_last)
输出:
Name Age City
2 Charlie 35 Chicago
3 Alice 25 New York
4 Bob 30 Los Angeles