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()


在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

歡迎關注公衆號【夜來疏影】
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章