利用pandas解决问题:Given a DataFrame,you need to filter out all students with scores >= 80 and add a column showing their grade level >=90 points, A grade; 80-89, B grade; 70-79, C grade; 60-69, D grade; 0-59, E grade.
时间: 2024-01-25 17:02:21 浏览: 31
可以按照以下步骤实现:
1. 使用pandas读取DataFrame,例如假设数据被保存在名为“df”的DataFrame中。
2. 使用条件过滤器,选择所有成绩大于等于80分的学生。可以使用以下代码:
```
filtered_df = df[df['score'] >= 80]
```
3. 添加一个新的列来显示每个学生的等级。你可以使用apply和lambda函数来实现条件逻辑,如下所示:
```
def get_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
elif score >= 60:
return 'D'
else:
return 'E'
filtered_df['grade'] = filtered_df['score'].apply(lambda x: get_grade(x))
```
4. 最后,你可以打印筛选后的DataFrame,以查看结果。
完整代码如下:
```python
import pandas as pd
# 读取DataFrame
df = pd.read_csv('your_file.csv')
# 过滤条件
filtered_df = df[df['score'] >= 80]
# 添加等级列
def get_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
elif score >= 60:
return 'D'
else:
return 'E'
filtered_df['grade'] = filtered_df['score'].apply(lambda x: get_grade(x))
# 打印结果
print(filtered_df)
```