Python实践之Pandas的使用——分析统计学生期末成绩并绘图

这篇具有很好参考价值的文章主要介绍了Python实践之Pandas的使用——分析统计学生期末成绩并绘图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、实践要求

二、测试数据

18.student_score.csv文件:(以下是分别用记事本和Excel打开的数据,可自行粘贴到记事本或Excel上保存为csv文件)

三、代码实现

1.从18.student_score.csv文件中读取同学的成绩册,处理好缺失值。

输出的结果(print(df)):

2.将实验报告成绩从ABCD转换成百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。

输出的结果(print(df)):

3.按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩,形成新的综合成绩列。

输出的结果:print(df)

print(counts):

4.统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数并画饼图。

输出的结果:

5.将完整的成绩保存到score.csv文件中,打开excel检查输出是否正确。

打开excel检查输出是否正确:

 四、学习资料


一、实践要求

1.从18.student_score.csv文件中读取同学的成绩册,处理好缺失值。

2.将实验报告成绩从ABCD转换成百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。

3.按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩,形成新的综合成绩列。

4.统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数并画饼图。

5.将完整的成绩保存到score.csv文件中,打开excel检查输出是否正确。

二、测试数据

18.student_score.csv文件:(以下是分别用记事本和Excel打开的数据,可自行粘贴到记事本或Excel上保存为csv文件)

序号,姓名,平时成绩,实验成绩,期末成绩
1,张三,95,A,81
2,李四,94,B,60
3,王五,95,C,87
4,马七,97,D,75
5,梦雪,97,A,63
6,樱花,94,A,66
7,杏子,94,A,28
8,天涯,99,A,76
9,孔维,94,B,84
10,赵四,95,D,86
11,孙二,100,C,60
12,,98,,
13,太良,98,D,83
14,丁云,95,D,83
15,淑萍,98,D,80
16,溪美,98,C,53
17,泰山,96,A,67
18,梅花,,A,64
19,梅六,98,B,68
20,云霞,96,B,85
序号 姓名 平时成绩 实验成绩 期末成绩
1 张三 95 A 81
2 李四 94 B 60
3 王五 95 C 87
4 马七 97 D 75
5 梦雪 97 A 63
6 樱花 94 A 66
7 杏子 94 A 28
8 天涯 99 A 76
9 孔维 94 B 84
10 赵四 95 D 86
11 孙二 100 C 60
12 98
13 太良 98 D 83
14 丁云 95 D 83
15 淑萍 98 D 80
16 溪美 98 C 53
17 泰山 96 A 67
18 梅花 A 64
19 梅六 98 B 68
20 云霞 96 B 85

三、代码实现

1.从18.student_score.csv文件中读取同学的成绩册,处理好缺失值。

import pandas as pd
# 绘图需要使用的库
from matplotlib import pyplot as plt

# 从18.student_score.csv文件中读取同学的成绩册,处理好缺失值
df = pd.read_csv("18.student_score.csv")
df.set_index("序号", inplace=True)  # 将序号作为index索引
df['姓名'].fillna('老六', inplace=True)
df = df.fillna(method="bfill")  # 处理缺失值:backfill / bfill表示用后面行的值,填充当前行的空值
# print(df)

输出的结果(print(df)):

Python实践之Pandas的使用——分析统计学生期末成绩并绘图

2.将实验报告成绩从ABCD转换成百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。

# 将实验报告成绩从ABCD转换成百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。
for x in df.index:
    if df.loc[x, "实验成绩"] == 'A':
        df.loc[x, "实验成绩"] = 90
    if df.loc[x, "实验成绩"] == 'B':
        df.loc[x, "实验成绩"] = 75
    if df.loc[x, "实验成绩"] == 'C':
        df.loc[x, "实验成绩"] = 60
    if df.loc[x, "实验成绩"] == 'D':
        df.loc[x, "实验成绩"] = 40
# print(df)

输出的结果(print(df)):

Python实践之Pandas的使用——分析统计学生期末成绩并绘图

3.按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩,形成新的综合成绩列。

# 按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩,形成新的综合成绩列。
df["综合成绩"] = df["平时成绩"] * 0.2 + df["实验成绩"] * 0.3 + df["期末成绩"] * 0.5
print(df)
# 统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数,并画饼图。
num = pd.cut(df['综合成绩'], bins=[0, 60, 70, 80, 90, 100], labels=['0-59', '60-69', '70-79', '80-89', '90-100'],
             right=False)  # bins为分区的分界值,labels为相应区间的标签
counts = num.value_counts()  # 统计区间人数
# print(counts)

输出的结果:print(df)

Python实践之Pandas的使用——分析统计学生期末成绩并绘图

print(counts):

Python实践之Pandas的使用——分析统计学生期末成绩并绘图

4.统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数并画饼图。

plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文字体
plt.pie(counts, autopct='%1.1f%%')# autopct后面的值1.1表示保留2位小数
plt.legend(labels=['70-79', '80-89', '60-69', '0-59', '90-100'], loc="best")  # 绘制图的图例为name,位置为最佳
plt.title("学生综合成绩区间分布图")  # 饼图的名称
plt.show()

输出的结果:

Python实践之Pandas的使用——分析统计学生期末成绩并绘图

5.将完整的成绩保存到score.csv文件中,打开excel检查输出是否正确。

# 完整的成绩保存到score.csv文件中,打开excel检查输出是否正确。
df.to_csv('score.csv', encoding='utf-8-sig')
# “utf-8-sig"中sig全拼为 signature 也就是"带有签名的utf-8”,
# 因此"utf-8-sig"读取带有BOM的"utf-8文件时"会把BOM单独处理,与文本内容隔离开,也是我们期望的结果。

打开excel检查输出是否正确:

Python实践之Pandas的使用——分析统计学生期末成绩并绘图

 四、学习资料

 以下是本实践涉及到的学习资料链接:

python解决csv文件用excel打开乱码问题 - 简书 (jianshu.com)

(93条消息) python csv写文件,用Excel打开中文乱码解决_dcong9010的博客-CSDN博客

数据分箱之pd.cut() - 知乎 (zhihu.com)

Pandas 数据清洗 | 菜鸟教程 (runoob.com)

(93条消息) 菜鸟编程:python中使用matplotlib绘制饼状图_小菜鸟Zoe的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-458014.html

到了这里,关于Python实践之Pandas的使用——分析统计学生期末成绩并绘图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python实现学生成绩管理程序,包含各科成绩的录入,计算各个学生的总分和平均分,统计各个科目的最高分、最低分和平均分。

            编程题目:使用python实现学生各科成绩的录入,计算各个学生的总分和平均分,统计各个科目的最高分、最低分和平均分。其中学生人数通过输入来决定,科目包括语文、数学和英语这三门课程。(保留一位小数)         1、实现各科成绩的录入,有多个学生和多

    2024年02月09日
    浏览(46)
  • 用Python实现学生成绩数据分析

    我的代码使用了 pygal 库来创建一个简单的折线图,并将其保存为SVG格式的文件。下面是对您代码的分析: 学生成绩数据分析表: 分析代码: 导入库 :您导入了 pygal 库,这是一个用于生成可缩放矢量图形(SVG)图表的Python库。 创建图表对象 :通过 pygal.Line() 创建了一个折线

    2024年02月22日
    浏览(45)
  • 文件中的成绩统计分析----Python

    现在一个包含若干学生学习成绩的文件,每位同学有4 门课程的成绩,按要求完成以下任务。 文件中每行数据格式如下: 0121801101266,刘雯,92,73,72,64 0121801101077,张佳喜,81,97,61,98 … 0121801101531,佘玉龙,73,89,81,93 读取附件文件中的数据,对数据进行处理,计算每个同学 4 门课程成绩

    2024年02月07日
    浏览(41)
  • 【期末课程设计】学生成绩管理系统

    因其独特,因其始终如一 文章目录 一、学生成绩管理系统介绍 二、学生成绩管理系统设计思路 三、源代码 1. test.c  2. Student Management System.c 3.Stu_System.c 4.Teacher.c 5.Student Management System.h   前言: 学生成绩管理系统含教师登录入口和学生登录入口,可实现学生信息的添加,删

    2024年02月16日
    浏览(38)
  • 【MFC】学生成绩管理系统(期末项目)

    如果需要代码请评论区留言或私信 E-R图 关系模式 教师(工号,姓名,学院) 主键(工号) 学生(学号,姓名,性别,年龄,班级,专业,学分) 主键(学号) 课程(课程编号,教师编号,课程名称,课程学分) 主键(课程编号) 外键(教师编号) 选课(学号,课程编号,分数) 主键(学号,课

    2024年01月17日
    浏览(49)
  • Python数据分析:NumPy、Pandas和Matplotlib的使用和实践

    在现代数据分析领域中,Python已成为最受欢迎的编程语言之一。Python通过庞大的社区和出色的库支持,成为了数据科学家和分析师的首选语言。在Python的库中,NumPy、Pandas和Matplotlib是三个最为重要的库,它们分别用于处理数值数组、数据处理和可视化。本文将介绍这三个库的

    2024年02月04日
    浏览(67)
  • SparkCore对学生成绩的统计案例

    1需求分析: 根据数据文件对数据进行分析,完成如下功能: (1)查询学生成绩表中的前5名; (2)输出单科成绩为100分的学生ID; (3)输出每位学生所有科目的总成绩。 2数据源(bigdata.txt,math.txt,student.txt) 3代码实现 (1)查询学生成绩表中的前5名;这里指的是单科成

    2023年04月20日
    浏览(83)
  • C语言7:输入若干个学生的成绩,统计出平均成绩

    在程序编辑区编写程序,给定程序功能是: 从键盘上输入若干个学生的成绩,统计出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 例如输入: 70  80  90  -1 输出: ave =80.00 --------OUTPUT----------- 70.0 程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果

    2024年02月06日
    浏览(44)
  • hadoop学习:mapreduce入门案例二:统计学生成绩

    这里相较于 wordcount,新的知识点在于学生实体类的编写以及使用 数据信息: 1. Student 实体类 2.  mapper 阶段,StudentMapper 类 3. reduce 阶段,StudentReduce 类 4. 驱动类,studentDriver 类

    2024年02月11日
    浏览(43)
  • 【数据分析与可视化】利用Python对学生成绩进行可视化分析实战(附源码)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 下面对学生成句和表现等数据可视化分析 1:导入模块 2:获取数据 并打印前四行  属性列表对应含义如下 Gender  性别 Nationality  国籍 PlaceofBirth 出生地 Stageid 学校级别 Gradeid 年级 Sectionid  班级 Topic 科目 semester 学期 ra

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包