用python中的pandas库统计不及格同学学号和课程名称,并打印出来。
时间: 2024-05-04 08:20:04 浏览: 78
假设有一份名为`scores.csv`的成绩表,包含学号、课程名称和成绩三列,可以使用pandas库来实现统计不及格同学的学号和课程名称的功能。具体代码如下:
```python
import pandas as pd
# 读取成绩表
df = pd.read_csv('scores.csv')
# 找出成绩小于60的记录
df_failed = df[df['成绩'] < 60]
# 统计不及格同学的学号和课程名称
df_failed = df_failed[['学号', '课程名称']]
# 打印结果
print(df_failed)
```
这样就可以输出所有不及格同学的学号和课程名称。
相关问题
不及格名单统计,统计结果包括:学号、姓名、科目、成绩等。python代码
首先,你需要准备一个包含学生信息的数据源,例如一个Excel表格或者一个CSV文件。假设这个文件名为"students.csv",内容如下:
```
学号,姓名,科目,成绩
1,张三,语文,80
2,李四,数学,60
3,王五,英语,50
4,赵六,物理,70
5,孙七,化学,65
6,周八,生物,60
7,吴九,政治,45
8,郑十,历史,50
```
然后你可以使用Python的pandas库读取这个文件,并筛选出不及格的学生信息:
```python
import pandas as pd
# 读取学生信息
df = pd.read_csv("students.csv")
# 筛选出不及格的学生信息
df_fail = df[df["成绩"] < 60]
# 显示统计结果
print(df_fail)
```
输出结果如下:
```
学号 姓名 科目 成绩
2 2 李四 数学 60
5 5 孙七 化学 65
6 6 周八 生物 60
7 7 吴九 政治 45
8 8 郑十 历史 50
```
你也可以使用pandas的groupby函数来统计每个科目不及格的学生数量:
```python
# 统计每个科目不及格的学生数量
fail_counts = df_fail.groupby("科目")["学号"].count()
# 显示统计结果
print(fail_counts)
```
输出结果如下:
```
科目
化学 1
有一组学生学号姓名成绩数据 将前面保存的工作空间文件导入工作空间,统计出各个分数段的人数和百分比,找出各分数段同学的学号和姓名
假设导入的文件名为 `score_data.csv`,包含以下列:学号、姓名、成绩。那么可以按照以下步骤进行统计和查询:
1. 导入 Pandas 库并读取数据:
```python
import pandas as pd
df = pd.read_csv('score_data.csv')
```
2. 确定分数段并将成绩按照分数段分组:
```python
# 将成绩按照分数段分组
bins = [0, 60, 70, 80, 90, 100] # 分数段
labels = ['不及格', '及格', '中等', '良好', '优秀'] # 分数段标签
df['分数段'] = pd.cut(df['成绩'], bins=bins, labels=labels)
```
3. 统计各个分数段的人数和百分比:
```python
# 统计各个分数段的人数和百分比
grouped = df.groupby('分数段')['成绩'].agg(['count', 'mean']) # count为人数,mean为平均分
grouped['百分比'] = grouped['count'] / grouped['count'].sum() * 100
print(grouped)
```
4. 找出各分数段同学的学号和姓名:
```python
# 找出各分数段同学的学号和姓名
for label in labels:
group = df.loc[df['分数段'] == label, ['学号', '姓名']]
print(f'{label}分数段同学的学号和姓名:\n{group}\n')
```
完整代码如下:
```python
import pandas as pd
df = pd.read_csv('score_data.csv')
bins = [0, 60, 70, 80, 90, 100] # 分数段
labels = ['不及格', '及格', '中等', '良好', '优秀'] # 分数段标签
df['分数段'] = pd.cut(df['成绩'], bins=bins, labels=labels)
grouped = df.groupby('分数段')['成绩'].agg(['count', 'mean']) # count为人数,mean为平均分
grouped['百分比'] = grouped['count'] / grouped['count'].sum() * 100
print(grouped)
for label in labels:
group = df.loc[df['分数段'] == label, ['学号', '姓名']]
print(f'{label}分数段同学的学号和姓名:\n{group}\n')
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)