Pandas获取具有相同值的行

Pandas获取具有相同值的行

在本文中,我们将介绍如何使用Pandas获取具有相同值的行。

假设我们有以下的数据表:

Name Age Gender
Tom 23 Male
Sarah 25 Female
Peter 23 Male
Alice 25 Female
Kevin 23 Male
Rachel 25 Female

我们想要找到具有相同年龄和性别的行。这可以通过以下几个步骤完成。

首先,我们需要使用Pandas读取数据表,可以使用以下代码:

import pandas as pd

df = pd.read_csv('data.csv')
Python

接下来,我们可以使用groupby函数将数据按照AgeGender分组。这可以使用以下代码完成:

grouped = df.groupby(['Age', 'Gender'])
Python

现在,我们可以使用filter函数从每个组中选择具有相同年龄和性别的行。这可以使用以下代码完成:

same_age_gender = grouped.filter(lambda x: len(x) > 1)
Python

最后,我们可以打印结果并验证数据。这可以使用以下代码完成:

print(same_age_gender)

# Output:

#     Name  Age  Gender
# 0    Tom   23    Male
# 2  Peter   23    Male
# 3  Alice   25  Female
# 4  Kevin   23    Male
# 5 Rachel   25  Female
Python

如我们所见,我们找到了具有相同年龄和性别的行,这是我们想要的结果。

另外,我们可以按照其他字段进行分组并获取具有相同值的行。例如,我们可以按照AgeGender分组,然后按照Name分组,找到具有相同年龄、性别和姓名的行。这可以使用以下代码完成:

grouped = df.groupby(['Age', 'Gender'])
same_age_gender = grouped.filter(lambda x: len(x) > 1)
same_age_gender_name = same_age_gender.groupby(['Age', 'Gender', 'Name'])
same_age_gender_name = same_age_gender_name.filter(lambda x: len(x) > 1)

print(same_age_gender_name)

# Output:

# Empty DataFrame
# Columns: [Name, Age, Gender]
# Index: []
Python

在这种情况下,我们找不到具有相同年龄、性别和姓名的行,因此结果为空DataFrame。

阅读更多:Pandas 教程

总结

在本文中,我们介绍了如何使用Pandas获取具有相同值的行。首先,我们使用groupby函数将数据按照字段分组,然后使用filter函数从每个组中选择具有相同值的行。我们还演示了如何按照多个字段进行分组,并在结果中找到具有相同值的行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程