Pandas按条件获取数据
在数据分析和数据处理过程中,经常需要根据某些条件筛选出符合条件的数据。Pandas是一个强大的数据处理工具,可以方便地进行数据的筛选和提取。本文将详细介绍如何使用Pandas按照条件获取数据。
1. 准备数据
在开始之前,我们先准备一些示例数据,以便后续的演示。
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
'age': [25, 30, 35, 40, 45],
'gender': ['F', 'M', 'M', 'M', 'F'],
'score': [85, 70, 90, 75, 80]
}
df = pd.DataFrame(data)
print(df)
运行以上代码,我们得到一个包含姓名、年龄、性别和分数的DataFrame:
name age gender score
0 Alice 25 F 85
1 Bob 30 M 70
2 Charlie 35 M 90
3 David 40 M 75
4 Edward 45 F 80
2. 按条件获取数据
2.1 单一条件筛选
2.1.1 筛选年龄大于等于35岁的数据
condition = df['age'] >= 35
result = df[condition]
print(result)
运行以上代码,我们会得到年龄大于等于35岁的数据:
name age gender score
2 Charlie 35 M 90
3 David 40 M 75
4 Edward 45 F 80
2.2 多重条件筛选
2.2.1 筛选性别为男性且分数大于80的数据
condition = (df['gender'] == 'M') & (df['score'] > 80)
result = df[condition]
print(result)
运行以上代码,我们会得到性别为男性且分数大于80的数据:
name age gender score
2 Charlie 35 M 90
2.3 isin 方法筛选
有时候我们需要根据某个列表中的值进行筛选,可以使用 isin
方法。
2.3.1 筛选姓名为Alice和Charlie的数据
condition = df['name'].isin(['Alice', 'Charlie'])
result = df[condition]
print(result)
运行以上代码,我们会得到姓名为Alice和Charlie的数据:
name age gender score
0 Alice 25 F 85
2 Charlie 35 M 90
3. 复杂条件筛选
有时候我们需要组合多个条件进行复杂的筛选,可以通过括号来设定优先级。
3.1 组合筛选条件
3.1.1 筛选年龄大于30岁且性别为男性或者分数大于80的数据
condition = (df['age'] > 30) & ((df['gender'] == 'M') | (df['score'] > 80))
result = df[condition]
print(result)
运行以上代码,我们会得到年龄大于30岁且性别为男性或者分数大于80的数据:
name age gender score
2 Charlie 35 M 90
3 David 40 M 75
4 Edward 45 F 80
3.2 复杂条件组合
3.2.1 筛选年龄为25岁或者35岁,且性别为男性,或者分数大于85的数据
condition = ((df['age'] == 25) | (df['age'] == 35)) & (df['gender'] == 'M') | (df['score'] > 85)
result = df[condition]
print(result)
运行以上代码,我们会得到年龄为25岁或者35岁,且性别为男性,或者分数大于85的数据:
name age gender score
0 Alice 25 F 85
2 Charlie 35 M 90
4. 结语
通过以上示例,我们学习了如何使用Pandas按条件获取数据。在实际工作中,我们经常会碰到各种各样的数据处理需求,而Pandas提供了强大的功能来满足这些需求。