第四章 Python数据分析实战 习题(数据见附件sizhang.xlsx) 表一:成绩表 学 号 C# 线 代 Python 16010203 78 88 96 表二:信息表 姓 名 学 号 手机号码 张三 16010203 16699995521 现请帮班主任做如下工作: 给成绩表加上姓名列; 给成绩表加上字段“总分”列,并求出总分; 增加列字段“等级”,标注每人“总分”的“优、良、中、及格、差”(270≤优,240≤良, 210≤中,及格≤180,差≤180); 计算各门课程的平均成绩以及标准差; 做”总分”成绩分布图,纵坐标表示成绩,横坐标表示学号或者姓名,画出总分的均分横线,让每位同学的总分圆点分布在均分线上下,以便于观察每位同学的成绩离开均分的距离。 你们要的Python作业来啦,详细代码介绍可查看我徒弟的博客: Python数据分析实战 此处只是将我徒弟的代码做一个总合。其中有需要注意的地方,运行时有个问题: 读取Excel表格数据时,sheet_name根据你的表格sheet名称填写。 在此声明,此代码来自我徒弟:潇囧囧_的博客,更多好文章,学习总结可关注我徒弟一起学习交流。 欢迎关注公众号【夜来疏影】
import pandas as pd sheet1 = pd.read_excel("D:Downloadspython_data.xlsx",sheet_name="成绩表") sheet2 = pd.read_excel("D:Downloadspython_data.xlsx",sheet_name="信息表") print(sheet1) sheet1 = pd.merge(sheet1,sheet2,left_on='学号',right_on='学号') #连接两个表 sheet1 = sheet1.drop(columns = ['手机号']) print(sheet1) sheet1["总分"] = sheet1["C#"]+sheet1["线 代"]+sheet1["Python"] print(sheet1) def return_ans(x): if x>=270: b='优' elif x>=240 and x<270: b='良' elif x>=210 and x<240: b='中' elif x>=180 and x<210: b='及格' else: b='差' return b sheet1['等级'] = sheet1['总分'].apply(lambda x:return_ans(x)) print(sheet1) print("C#的平均成绩为",sheet1['C#'].values.mean()) print("C#的标准差为",sheet1['C#'].values.std()) print("线 代的平均成绩为",sheet1['线 代'].values.mean()) print("线 代的标准差为",sheet1['线 代'].values.std()) print("Python的平均成绩为",sheet1['Python'].values.mean()) print("Python的标准差为",sheet1['Python'].values.std()) import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['Simhei'] s = sheet1['总分'].values.mean() plt.bar(range(len(sheet1['总分'])),sheet1['总分'],width=0.8) plt.xticks(range(len(sheet1['总分'])),sheet1['姓名']) plt.axhline(s, color='red', linestyle='--') plt.show()
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算