pandas过滤满足条件的值案例
时间: 2023-06-29 10:20:24 浏览: 58
假设有一个存储学生成绩的DataFrame,包含学生姓名、科目和成绩三列数据,请问如何过滤出数学成绩大于80分的学生?
首先,我们可以创建一个示例DataFrame:
```
import pandas as pd
data = {'name': ['张三', '李四', '王五', '赵六'],
'subject': ['语文', '数学', '英语', '语文'],
'score': [78, 85, 79, 92]}
df = pd.DataFrame(data)
print(df)
```
输出结果为:
```
name subject score
0 张三 语文 78
1 李四 数学 85
2 王五 英语 79
3 赵六 语文 92
```
然后,我们可以使用boolean indexing来过滤满足条件的行,即数学成绩大于80分的学生:
```
math_df = df[df['subject'] == '数学']
math_df = math_df[math_df['score'] > 80]
print(math_df)
```
输出结果为:
```
name subject score
1 李四 数学 85
```
可以看到,我们成功地过滤出了数学成绩大于80分的学生,即李四。
相关问题
pandas过滤满足条件的值
可以使用pandas中的boolean indexing来过滤满足条件的值。例如,假设有一个DataFrame df,我们想要过滤出列A中大于5的行,可以使用以下代码:
```
df[df['A'] > 5]
```
其中,`df['A'] > 5`会返回一个布尔类型的Series,值为True表示该行的A列大于5,False表示小于等于5,然后将这个Series传入df中,即可得到满足条件的行。
pandas 过滤可能包含值的行
可以使用 pandas 的 isin() 方法来过滤可能包含值的行,示例代码如下:
```
import pandas as pd
# 创建一个包含可能包含值的数据集
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['female', 'male', 'male', 'male']}
df = pd.DataFrame(data)
# 过滤可能包含值的行
values_to_filter = ['Bob', 'David']
filtered_df = df[df['name'].isin(values_to_filter)]
print(filtered_df)
```
输出结果为:
```
name age gender
1 Bob 30 male
3 David 40 male
```