Pandas 多列去重值
在本文中,我们将介绍如何使用Pandas库对多列数据进行去重处理,以及如何筛选独特的值。
阅读更多:Pandas 教程
创建示例数据
我们首先创建一个包含多个列的DataFrame,数据如下所示:
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Alice'],
'Age': [25, 30, 35, 40, 25],
'Gender': ['Female', 'Male', 'Male', 'Male', 'Female'],
'Country': ['US', 'UK', 'US', 'Canada', 'US']
}
df = pd.DataFrame(data)
print(df)
输出结果如下:
Name Age Gender Country
0 Alice 25 Female US
1 Bob 30 Male UK
2 Charlie 35 Male US
3 David 40 Male Canada
4 Alice 25 Female US
使用多列去重
假设我们想要根据“Name”、“Age”和“Gender”这三列数据进行去重操作。我们可以使用Pandas的drop_duplicates()函数来实现:
df.drop_duplicates(subset=['Name', 'Age', 'Gender'], inplace=True)
print(df)
输出结果如下:
Name Age Gender Country
0 Alice 25 Female US
1 Bob 30 Male UK
2 Charlie 35 Male US
3 David 40 Male Canada
我们可以看到,第4行数据已经被删除了,因为它与第1行数据重复。
筛选唯一值
如果我们只想要筛选出唯一的“Name”列数据,我们可以使用unique()函数:
unique_names = df['Name'].unique()
print(unique_names)
输出结果如下:
['Alice' 'Bob' 'Charlie' 'David']
如果我们想要筛选出唯一的“Name”和“Age”列组合的数据,我们可以使用drop_duplicates()函数:
unique_names_ages = df.drop_duplicates(subset=['Name', 'Age'], inplace=False)
print(unique_names_ages)
输出结果如下:
Name Age Gender Country
0 Alice 25 Female US
1 Bob 30 Male UK
2 Charlie 35 Male US
3 David 40 Male Canada
我们可以看到,只有第二个“Alice”被删除了,因为它的“Age”与之前的一行完全相同。
总结
Pandas库提供了很多方便的函数来对多列数据进行去重和筛选唯一值操作。drop_duplicates()函数可以根据我们指定的列数据进行去重处理,而unique()函数则可以帮助我们筛选唯一值。我们需要根据实际情况选择正确的函数和参数来处理数据。