编程语言
首页 > 编程语言> > Python数据分析实战作业 第四章 Python数据分析实战 习题

Python数据分析实战作业 第四章 Python数据分析实战 习题

作者:互联网

第四章 Python数据分析实战 习题(数据见附件sizhang.xlsx)

  1. 班主任现有一班级的两张表,如下。

表一:成绩表

学 号 C# 线 代 Python

16010203 78 88 96

表二:信息表

姓 名 学 号 手机号码

张三 16010203 16699995521

现请帮班主任做如下工作:

  1. 给成绩表加上姓名列;

  2. 给成绩表加上字段“总分”列,并求出总分;

  3. 增加列字段“等级”,标注每人“总分”的“优、良、中、及格、差”(270≤优,240≤良, 210≤中,及格≤180,差≤180);

  4. 计算各门课程的平均成绩以及标准差;

  5. 做"总分"成绩分布图,纵坐标表示成绩,横坐标表示学号或者姓名,画出总分的均分横线,让每位同学的总分圆点分布在均分线上下,以便于观察每位同学的成绩离开均分的距离。

你们要的Python作业来啦,详细代码介绍可查看我徒弟的博客Python数据分析实战

此处只是将我徒弟的代码做一个总合。其中有需要注意的地方,运行时有个问题: 读取Excel表格数据时,sheet_name根据你的表格sheet名称填写。
在这里插入图片描述

在此声明,此代码来自我徒弟:潇囧囧_的博客,更多好文章,学习总结可关注我徒弟一起学习交流。

import pandas as pd
sheet1 = pd.read_excel("D:\Downloads\python_data.xlsx",sheet_name="成绩表")
sheet2 = pd.read_excel("D:\Downloads\python_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()


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

欢迎关注公众号【夜来疏影】
在这里插入图片描述

标签:数据分析,实战,sheet,Python,sheet1,总分,pd,成绩表
来源: https://blog.csdn.net/weixin_43729943/article/details/106712095