Pandas 多列去重值

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()函数则可以帮助我们筛选唯一值。我们需要根据实际情况选择正确的函数和参数来处理数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程