Pandas 根据某一列不同的值获取行
在数据分析和数据处理中,我们经常需要对DataFrame进行操作。其中一个重要的操作是获取数据框中某一列的不同值并获取相应的行。针对这种需求,Pandas提供了一些函数和方法。
阅读更多:Pandas 教程
背景知识
在本文中,我们将结合一个示例数据框,详细介绍如何根据某一列的不同的值获取行。在此之前,您需要掌握以下的知识点:
- Python基础知识
- Pandas库的使用
示例数据框
在这里,我们以网站用户数据为例,创建如下的数据框:
import pandas as pd
data = {
'user_id': [1, 2, 3, 4, 5, 6, 7, 8, 9],
'username': ['Alice', 'Bob', 'Charlie', 'David', 'Eva', 'Frank', 'Gina', 'Henry', 'Isaac'],
'age': [22, 33, 26, 41, 29, 37, 24, 28, 36],
'gender': ['Female', 'Male', 'Male', 'Male', 'Female', 'Male', 'Female', 'Male', 'Male'],
'job': ['Student', 'Engineer', 'Writer', 'Teacher', 'Doctor', 'Lawyer', 'Designer', 'Marketer', 'Scientist']
}
df = pd.DataFrame(data)
得到的数据框如下:
user_id | username | age | gender | job |
---|---|---|---|---|
1 | Alice | 22 | Female | Student |
2 | Bob | 33 | Male | Engineer |
3 | Charlie | 26 | Male | Writer |
4 | David | 41 | Male | Teacher |
5 | Eva | 29 | Female | Doctor |
6 | Frank | 37 | Male | Lawyer |
7 | Gina | 24 | Female | Designer |
8 | Henry | 28 | Male | Marketer |
9 | Isaac | 36 | Male | Scientist |
根据某一列的不同值获取行
1. 使用unique()函数获取不同的值
我们可以使用unique()函数获取某一列的不同值。例如,我们要获取所有性别不同的行,可以使用如下操作:
unique_gender = df['gender'].unique()
print(unique_gender)
输出如下:
['Female' 'Male']
2. 使用isin()函数获取某一列中特定的值
使用isin()函数可以获取某一列中特定的值。例如,我们想获取所有学生的行,可以使用如下操作:
student = df[df['job'].isin(['Student'])]
print(student)
得到的输出如下:
user_id | username | age | gender | job |
---|---|---|---|---|
1 | Alice | 22 | Female | Student |
3. 使用loc函数获取符合条件的行
我们可以使用loc函数获取符合条件的行。例如,我们想获取所有性别为女性的行,可以使用如下操作:
female = df.loc[df['gender'] == 'Female']
print(female)
得到的输出如下:
user_id | username | age | gender | job |
---|---|---|---|---|
1 | Alice | 22 | Female | Student |
5 | Eva | 29 | Female | Doctor |
7 | Gina | 24 | Female | Designer |
4. 使用groupby()函数获取分组后的行
我们可以使用groupby()函数将数据根据某一列的特定值分组。例如,我们想获取所有职业为工程师(Engineer)的男性行,可以使用如下操作:
engineer_male = df.groupby(['job', 'gender']).get_group(('Engineer', 'Male'))
print(engineer_male)
输出:
user_id | username | age | gender | job |
---|---|---|---|---|
2 | Bob | 33 | Male | Engineer |
5. 使用duplicated()函数获取重复的行
可以使用duplicated()函数获取数据框中重复的行。例如,我们想获取名字重复的行,可以使用如下操作:
duplicated_name = df[df.duplicated(['username'])]
print(duplicated_name)
输出:
user_id | username | age | gender | job |
---|---|---|---|---|
3 | Charlie | 26 | Male | Writer |
总结
以上就是Pandas根据某一列不同的值获取行的方法,包括使用unique()函数获取不同的值,使用isin()函数获取某一列中特定的值,使用loc函数获取符合条件的行,使用groupby()函数获取分组后的行,以及使用duplicated()函数获取重复的行。这些方法可以帮助我们快速获取数据框中特定列不同值的行,方便数据处理与分析。