国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

這篇具有很好參考價值的文章主要介紹了Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

大家訪問這個即可下載數(shù)據(jù)集和源代碼!!!
gitee項目源碼及數(shù)據(jù)文件在這里,點擊

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

案列要求

1、訓練要點
(1)掌握使用seaborn庫或者matplotlib庫進行數(shù)據(jù)可視化的方法
(2)掌握撰寫可視化分析報告的方法
2、需求說明
在現(xiàn)實生活中,學生的成績與表現(xiàn)往往受制于多方面的因素。在教學研究中,除去對各科目考試結(jié)果本身的分析外,如果能夠深入地對學生其他信息(如對學生家庭背景、性別、飲食、課前準備等影響因素)進行分析,那么老師將會進一步了解學生在考試中的表現(xiàn)。學生考試成績數(shù)據(jù)集中包含8各字段,共計1000條數(shù)據(jù),其字段信息說明如下表所示。
表:學生考試成績數(shù)據(jù)集中的字段信息說明
Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目
為了了解不同性別的學生在數(shù)學、閱讀、寫作中的表現(xiàn),了解父母受教育程度對學生數(shù)學、閱讀、寫作是否有影響,了解午餐標準對學生成績是否有影響,了解考試準備充分是否有助于提高學生成績,需要對學生考試成績數(shù)據(jù)集進行數(shù)據(jù)讀取、處理、可視化分析。

(1)使用Pandas庫讀取文件,查看原始數(shù)據(jù)的相關特征和描述信息,檢查是否有空值。
(2)分別獲取數(shù)據(jù)框中的閱讀成績、數(shù)學成績、寫作成績3個字段,累加求和計算出每個學生的總分total_score,再除以3得到平均分percentage。
(3)設置各門課程及格線為60分,分別判斷學生是否通過(Fail/Pass)每門課,合并新的數(shù)據(jù)列pass_reading、pass_math、pass_writing。
(4)判斷每個學生的整體狀態(tài)是否通過。如果3門課中有一門為Fail,則最后考核為Fail,合并新的數(shù)據(jù)列status。
(5)對于總分是Pass的數(shù)據(jù),根據(jù)平均分設置5級制成績,即percentage大于等于90分為優(yōu)秀,8089分為良好,7079分為中等,60~69分為幾個,其他為不及格。
(6)繪制可視化圖形。
繪制父母受教育程度的水平柱狀圖
繪制全體學生成績分布餅圖
繪制各科成績分布直方圖
繪制父母受教育程度與前置課程是否完成統(tǒng)計分類圖
繪制成績評級與性別分布箱線圖
繪制午餐標準與總成績的性別分類散點圖
繪制各特征的相關熱力圖

背景

為了了解不同性別的學生在數(shù)學、閱讀、寫作中的表現(xiàn),了解父母受教育程度對學生數(shù)學、閱讀、寫作是否有影響,了解午餐標準對學生成績是否有影響,了解考試準備充分是否有助于提高學生成績,需要對學生考試成績數(shù)據(jù)集進行數(shù)據(jù)讀取、處理、可視化分析。在當今社會,教育是許多人生中最重要的一部分。隨著數(shù)據(jù)分析和可視化技術的不斷發(fā)展,越來越多的人開始將這些技術應用于教育領域,以幫助學校、家長和政府更好地管理和決策。而Python作為一種流行的編程語言,其數(shù)據(jù)分析和可視化能力已經(jīng)得到廣泛認可和使用。本文介紹了一個基于Python腳本的學生特征和成績分析方案,旨在探究不同特征對學生成績的影響,并提供有力支持和參考,為學校和家長提供更有效的教育決策。

一、處理數(shù)據(jù)

import pandas as pd

import pandas as pd

# 使用 GBK 編碼方式讀取文件
df = pd.read_csv("StudentsPerformance.csv", encoding="gbk")


# 查看數(shù)據(jù)的前幾行
print(df.head())

# 查看數(shù)據(jù)的基本信息,包括每列數(shù)據(jù)的類型和非空數(shù)量等
print(df.info())

# 查看數(shù)據(jù)的統(tǒng)計信息,包括每列數(shù)據(jù)的基本統(tǒng)計量(如均值、標準差、最大值、最小值等)
print(df.describe())

# 檢查是否有空值
print(df.isnull().sum())

這段代碼主要使用了 Python 的 Pandas 庫對名為 “StudentsPerformance.csv” 的 CSV 文件進行了分析。在運行這段代碼后,它會執(zhí)行以下幾個操作:
使用 Pandas 庫的 read_csv() 函數(shù)讀取 “StudentsPerformance.csv” 文件中的數(shù)據(jù),并將其存儲在一個名為 df 的 Dataframe 對象中。
執(zhí)行 df.head() 函數(shù),可以顯示出這個 Dataframe 對象的前五行,方便我們初步查看數(shù)據(jù)。
執(zhí)行 df.info() 函數(shù),可以打印出 Dataframe 的基本信息,包括列數(shù)、每列名稱、每列中非空值的數(shù)量和數(shù)據(jù)類型等
執(zhí)行 df.describe() 函數(shù),可以打印出 Dataframe 中各列數(shù)據(jù)的統(tǒng)計信息,如均值、標準差、最大值、最小值等。
執(zhí)行 df.isnull().sum() 函數(shù),可以檢查 Dataframe 中是否有缺失值,統(tǒng)計每列缺失值的數(shù)量,并將其打印出來。

 結(jié)果:
  性別 民族 父母教育程度     午餐 課程完成情況  數(shù)學成績  閱讀成績  寫作成績
0  女  B   學士學位     標準    未完成    72    72    74
1  女  C  大學未畢業(yè)     標準     完成    69    90    88
2  女  B   碩士學位     標準    未完成    90    95    93
3  男  A  副學士學位  自由/減少    未完成    47    57    44
4  男  C  大學未畢業(yè)     標準    未完成    76    78    75
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 8 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   性別      1000 non-null   object
 1   民族      1000 non-null   object
 2   父母教育程度  1000 non-null   object
 3   午餐      1000 non-null   object
 4   課程完成情況  1000 non-null   object
 5   數(shù)學成績    1000 non-null   int64 
 6   閱讀成績    1000 non-null   int64 
 7   寫作成績    1000 non-null   int64 
dtypes: int64(3), object(5)
memory usage: 62.6+ KB
None
             數(shù)學成績         閱讀成績         寫作成績
count  1000.00000  1000.000000  1000.000000
mean     66.08900    69.169000    68.054000
std      15.16308    14.600192    15.195657
min       0.00000    17.000000    10.000000
25%      57.00000    59.000000    57.750000
50%      66.00000    70.000000    69.000000
75%      77.00000    79.000000    79.000000
max     100.00000   100.000000   100.000000
性別        0
民族        0
父母教育程度    0
午餐        0
課程完成情況    0
數(shù)學成績      0
閱讀成績      0
寫作成績      0
dtype: int64

二、選取閱讀成績、數(shù)學成績、寫作成績3個字段,計算總分和平均分

# 選取閱讀成績、數(shù)學成績、寫作成績3個字段,計算總分和平均分
df['總分'] = df.iloc[:,5:8].sum(axis=1)
df['平均分'] = df['總分'] / 3

# 查看計算結(jié)果
print(df[['閱讀成績', '數(shù)學成績', '寫作成績', '總分', '平均分']].head())

這段代碼的作用是從 DataFrame 對象 df 中選取閱讀成績、數(shù)學成績、寫作成績3個字段,并計算每位學生的總分和平均分。具體解釋如下:

df.iloc[:, 5:8] 表示選取第6、7、8列(閱讀成績、數(shù)學成績、寫作成績),使用 sum(axis=1) 對每行求和,將每位學生的總分添加到 df 中。

計算每位學生的平均分,即將每位學生的總分除以3,并將其添加到 df 中。

使用 df[['閱讀成績', '數(shù)學成績', '寫作成績', '總分', '平均分']] 選取 DataFrame 對象 df 中的 閱讀成績、數(shù)學成績、寫作成績、總分、平均分這5個字段,并使用 head() 方法打印出前五行數(shù)據(jù)。

總之,這段代碼的目的是對 DataFrame 對象 df 的特定字段進行處理,并將處理結(jié)果添加到 df 中。它計算了每位學生的總分和平均分,并把這兩個指標加入到了原始數(shù)據(jù)中,方便進一步統(tǒng)計和分析。最后,使用 print 函數(shù)輸出了所選的字段以及新增字段的結(jié)果,以便于我們查看計算結(jié)果。

三、設置及格線為60分,并使用 lambda 函數(shù)判斷每位學生是否通過各門課程

   閱讀成績  數(shù)學成績  寫作成績   總分        平均分
0    72    72    74  218  72.666667
1    90    69    88  247  82.333333
2    95    90    93  278  92.666667
3    57    47    44  148  49.333333
4    78    76    75  229  76.333333
# 設置及格線為60分,并使用 lambda 函數(shù)判斷每位學生是否通過各門課程
df['pass_reading'] = df['閱讀成績'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')
df['pass_math'] = df['數(shù)學成績'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')
df['pass_writing'] = df['寫作成績'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')

# 打印修改后的數(shù)據(jù)幀
print(df.head())

這段代碼的主要作用是,首先設置及格線為 60 分,然后使用 lambda 函數(shù)判斷每位學生是否通過閱讀、數(shù)學和寫作三門課程,并將結(jié)果存儲到 df 新添加的三列 pass_reading、pass_math 和 pass_writing 中。具體解釋如下:

使用 apply 方法和 lambda 函數(shù),對閱讀成績、數(shù)學成績、寫作成績這三列,使用 if 判斷語句,若成績大于等于 60,則將該學生的值設定為 ‘Pass’,否則設定為 ‘Fail’,并將判斷結(jié)果添加到 DataFrame 對象 df 的新列中。

因為 DataFrame 對象 df 的三列 pass_reading、pass_math 和 pass_writing 新添加了判斷結(jié)果,所以打印出修改后的 DataFrame 對象 df,以便于我們查看結(jié)果。

總之,這段代碼的目的是對 DataFrame 對象 df 的閱讀成績、數(shù)學成績、寫作成績這三列數(shù)據(jù)進行判斷,并將判斷結(jié)果添加到 df 新添加的三列中。它使用了 apply 方法和 lambda 函數(shù)來對每個成績進行判斷,并根據(jù)判斷結(jié)果添加到相應的新列中。這樣做有利于我們更好地判斷每位學生是否通過各門課程,并能夠在進一步分析中幫助我們更精準地對學生成績進行評估。

  性別 民族 父母教育程度     午餐 課程完成情況  數(shù)學成績  閱讀成績  寫作成績   總分        平均分 pass_reading  \
0  女  B   學士學位     標準    未完成    72    72    74  218  72.666667         Pass   
1  女  C  大學未畢業(yè)     標準     完成    69    90    88  247  82.333333         Pass   
2  女  B   碩士學位     標準    未完成    90    95    93  278  92.666667         Pass   
3  男  A  副學士學位  自由/減少    未完成    47    57    44  148  49.333333         Fail   
4  男  C  大學未畢業(yè)     標準    未完成    76    78    75  229  76.333333         Pass   

  pass_math pass_writing  
0      Pass         Pass  
1      Pass         Pass  
2      Pass         Pass  
3      Fail         Fail  
4      Pass         Pass  

四、使用 apply() 函數(shù)和 lambda 表達式判斷每個學生的整體狀態(tài)是否通過,并將判斷結(jié)果存儲在新的數(shù)據(jù)列中

# 使用 apply() 函數(shù)和 lambda 表達式判斷每個學生的整體狀態(tài)是否通過,并將判斷結(jié)果存儲在新的數(shù)據(jù)列中
df['情況'] = df.apply(lambda x: 'Pass' if x['pass_reading'] == 'Pass' and x['pass_math'] == 'Pass' and x['pass_writing'] == 'Pass' else 'Fail', axis=1)

# 打印修改后的數(shù)據(jù)幀
print(df.head())
  性別 民族 父母教育程度     午餐 課程完成情況  數(shù)學成績  閱讀成績  寫作成績   總分        平均分 pass_reading  \
0  女  B   學士學位     標準    未完成    72    72    74  218  72.666667         Pass   
1  女  C  大學未畢業(yè)     標準     完成    69    90    88  247  82.333333         Pass   
2  女  B   碩士學位     標準    未完成    90    95    93  278  92.666667         Pass   
3  男  A  副學士學位  自由/減少    未完成    47    57    44  148  49.333333         Fail   
4  男  C  大學未畢業(yè)     標準    未完成    76    78    75  229  76.333333         Pass   

這段代碼的目的是使用 apply() 函數(shù)和 lambda 表達式計算出每個學生的整體狀態(tài)是否通過,并將結(jié)果存儲在 DataFrame 對象 df 的新列 ‘情況’ 中。具體解釋如下:

使用 apply() 函數(shù)和 lambda 表達式,對 DataFrame 對象 df 進行遍歷并應用 lambda 函數(shù),axis=1 表示沿著行方向進行操作。對于每個學生,判斷其閱讀、數(shù)學、寫作三科成績是否全部通過,如果全部通過則該學生整體通過,否則整體不通過。

根據(jù)判斷結(jié)果,將"Pass"或"Fail"存儲到 DataFrame 對象 df 的新列’情況’中。

打印輸出修改后的 DataFrame 對象 df,以便于我們查看計算結(jié)果。

總之,這段代碼的目的是對 DataFrame 對象 df 的三門科目成績是否通過進行整體判斷,并將判斷結(jié)果存儲到一個新列中,這樣可以更加方便地進行學生成績評估。

  pass_math pass_writing    情況  
0      Pass         Pass  Pass  
1      Pass         Pass  Pass  
2      Pass         Pass  Pass  
3      Fail         Fail  Fail  
4      Pass         Pass  Pass  

五、計算每個學生的總分和平均分,并使用條件表達式判斷成績等級,并將判斷結(jié)果存儲在新的數(shù)據(jù)列中

# 計算每個學生的總分和平均分,并使用條件表達式判斷成績等級,并將判斷結(jié)果存儲在新的數(shù)據(jù)列中
df['總分'] = df['數(shù)學成績'] + df['閱讀成績'] + df['寫作成績']
df['平均分'] = df['總分'] / 3
df['等級'] = df.apply(lambda x: '優(yōu)秀' if x['平均分'] >= 90 else '良好' if x['平均分'] >= 80 else '中等' if x['平均分'] >= 70 else '及格' if x['平均分'] >= 60 else '不及格', axis=1)

# 打印修改后的數(shù)據(jù)幀
print(df.head())

這段代碼的目的是計算每個學生的總分和平均分,并根據(jù)條件表達式判斷成績等級,并將判斷結(jié)果存儲在 DataFrame 對象 df 的新列’等級’中。具體解釋如下:

首先,計算每個學生的總分和平均分,將其存儲在 DataFrame 對象 df 的’總分’和’平均分’列中。

使用 apply() 函數(shù)和 lambda 表達式遍歷 DataFrame 對象 df,axis=1 表示沿著行方向進行操作。對于每個學生,根據(jù)其平均分使用條件表達式判斷其成績等級,例如如果平均分大于等于 90 分,則為優(yōu)秀,大于等于 80 分則為良好,以此類推,將其判斷結(jié)果存儲到 DataFrame 對象 df 的新列’等級’中。

打印輸出修改后的 DataFrame 對象 df,以便于我們查看計算結(jié)果。

總之,這段代碼的目的是對 DataFrame 對象 df 的三門科目成績進行計算并判斷成績等級,將判斷結(jié)果存儲到一個新的數(shù)據(jù)列中。這樣可以更加方便地對學生成績做出評估和分析。

  性別 民族 父母教育程度     午餐 課程完成情況  數(shù)學成績  閱讀成績  寫作成績   總分        平均分 pass_reading  \
0  女  B   學士學位     標準    未完成    72    72    74  218  72.666667         Pass   
1  女  C  大學未畢業(yè)     標準     完成    69    90    88  247  82.333333         Pass   
2  女  B   碩士學位     標準    未完成    90    95    93  278  92.666667         Pass   
3  男  A  副學士學位  自由/減少    未完成    47    57    44  148  49.333333         Fail   
4  男  C  大學未畢業(yè)     標準    未完成    76    78    75  229  76.333333         Pass   

  pass_math pass_writing    情況   等級  
0      Pass         Pass  Pass   中等  
1      Pass         Pass  Pass   良好  
2      Pass         Pass  Pass   優(yōu)秀  
3      Fail         Fail  Fail  不及格  
4      Pass         Pass  Pass   中等  

六、數(shù)據(jù)可視化

1.統(tǒng)計每個家長受教育水平的人數(shù),并繪制水平柱狀圖

import seaborn as sns
import matplotlib.pyplot as plt
# 指定字體
plt.rcParams['font.sans-serif'] = ['SimHei']
# 統(tǒng)計每個家長受教育水平的人數(shù),并繪制水平柱狀圖
edu_counts = df['父母教育程度'].value_counts()
plt.bar(edu_counts.index, edu_counts.values)
plt.xlabel('父母教育程度')
plt.ylabel('人數(shù)')
plt.title('父母受教育程度的水平柱狀圖')
plt.show()

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

2. 統(tǒng)計及格和不及格的人數(shù),并繪制餅圖

# 統(tǒng)計及格和不及格的人數(shù),并繪制餅圖
pass_counts = df['情況'].value_counts()

labels = ['及格', '不及格']
sizes = [pass_counts['Pass'], pass_counts['Fail']]
plt.pie(sizes,
        labels=labels,
        autopct='%1.1f%%')

plt.title('全體學生成績分布餅圖')
plt.axis('equal')
plt.show()

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

3. 繪制數(shù)學成績、閱讀成績和寫作成績的直方圖

# 繪制數(shù)學成績、閱讀成績和寫作成績的直方圖
plt.hist(df['數(shù)學成績'], bins=10, alpha=0.5, label='math score')
plt.hist(df['閱讀成績'], bins=10, alpha=0.5, label='reading score')
plt.hist(df['寫作成績'], bins=10, alpha=0.5, label='writing score')

plt.legend(loc='upper right')
plt.xlabel('成績')
plt.ylabel('人數(shù)')
plt.title('各科成績分布直方圖')
plt.show()

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

4. 繪制父母受教育程度和前置課程是否完成的分類圖

# 繪制父母受教育程度和前置課程是否完成的分類圖
sns.countplot(x='父母教育程度',
              data=df,
              hue='課程完成情況')
plt.title('父母受教育程度與前置課程是否完成統(tǒng)計分類圖')
plt.show()

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

5. 繪制成績評級和性別分布的箱線圖

# 繪制成績評級和性別分布的箱線圖
sns.boxplot(x='等級',
            y='總分',
            hue='性別',
            data=df)
plt.title('成績評級與性別分布箱線圖')
plt.show()

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

6. 繪制午餐標準和總成績的性別分類散點圖

# 繪制午餐標準和總成績的性別分類散點圖
sns.scatterplot(x='午餐',
                y='總分',
                hue='性別',
                data=df)
plt.title('午餐標準與總成績的性別分類散點圖')
plt.show()

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

7. 計算各特征之間的相關系數(shù),并繪制熱力圖

corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('各特征的相關熱力圖')
plt.show()

Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目

七、總結(jié)

通過對學生數(shù)據(jù)的分析和可視化,本Python腳本探討了學生的不同特征與其成績之間的關系,并得出了多個結(jié)論。其中包括父母受教育程度普遍較高、女性學生總成績明顯高于男性學生等。這些結(jié)論為學校、家長和政府制定更有效的教育方案提供了非常有價值的參考。

此外,使用Matplotlib和Seaborn這兩個強大的可視化庫,使得數(shù)據(jù)結(jié)果更加直觀和易懂。通過直觀的圖表呈現(xiàn),我們可以更清晰地看到數(shù)據(jù)分布和相互關系,從而更準確地分析和解讀數(shù)據(jù)。

需要注意的是,盡管本腳本得出了多個結(jié)論,但這些結(jié)論并不一定適用于所有情況,仍需考慮實際情況和背景。同時,還可以通過進一步探究和分析數(shù)據(jù),尋求更深層次的規(guī)律和結(jié)論,為教育領域提供更多的參考和指導。

總之,本Python腳本為教育領域的數(shù)據(jù)分析和研究提供了一個好的起點,也為學生特征和成績之間的關系提供了有力支持。在今后的學生管理和教育實踐中,我們應該進一步挖掘數(shù)據(jù)的潛力,為學生成長和發(fā)展提供更有效的幫助和支持。

八、完整代碼

以下代碼為基于 Pandas 庫對學生表現(xiàn)數(shù)據(jù)進行的一系列操作和可視化,主要包括數(shù)據(jù)讀取、數(shù)據(jù)清洗、數(shù)據(jù)計算、數(shù)據(jù)分析和數(shù)據(jù)可視化等方面的內(nèi)容。其中,我們可以看到對于數(shù)據(jù)的大量處理操作,例如:查看數(shù)據(jù)的前幾行和基本信息、計算總分和平均分、判斷每門課程是否及格、判斷整體狀態(tài)是否通過、計算成績等級、統(tǒng)計分類圖、箱線圖、散點圖、熱力圖等。這些操作可以幫助我們更好地了解和分析該數(shù)據(jù)集,以便后續(xù)做出更好的決策和指導。

import pandas as pd

import pandas as pd

# 使用 GBK 編碼方式讀取文件
df = pd.read_csv("StudentsPerformance.csv", encoding="gbk")


# 查看數(shù)據(jù)的前幾行
print(df.head())

# 查看數(shù)據(jù)的基本信息,包括每列數(shù)據(jù)的類型和非空數(shù)量等
print(df.info())

# 查看數(shù)據(jù)的統(tǒng)計信息,包括每列數(shù)據(jù)的基本統(tǒng)計量(如均值、標準差、最大值、最小值等)
print(df.describe())

# 檢查是否有空值
print(df.isnull().sum())


# 選取閱讀成績、數(shù)學成績、寫作成績3個字段,計算總分和平均分
df['總分'] = df.iloc[:,5:8].sum(axis=1)
df['平均分'] = df['總分'] / 3

# 查看計算結(jié)果
print(df[['閱讀成績', '數(shù)學成績', '寫作成績', '總分', '平均分']].head())


# 設置及格線為60分,并使用 lambda 函數(shù)判斷每位學生是否通過各門課程
df['pass_reading'] = df['閱讀成績'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')
df['pass_math'] = df['數(shù)學成績'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')
df['pass_writing'] = df['寫作成績'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')

# 打印修改后的數(shù)據(jù)幀
print(df.head())

# 使用 apply() 函數(shù)和 lambda 表達式判斷每個學生的整體狀態(tài)是否通過,并將判斷結(jié)果存儲在新的數(shù)據(jù)列中
df['情況'] = df.apply(lambda x: 'Pass' if x['pass_reading'] == 'Pass' and x['pass_math'] == 'Pass' and x['pass_writing'] == 'Pass' else 'Fail', axis=1)

# 打印修改后的數(shù)據(jù)幀
print(df.head())

# 計算每個學生的總分和平均分,并使用條件表達式判斷成績等級,并將判斷結(jié)果存儲在新的數(shù)據(jù)列中
df['總分'] = df['數(shù)學成績'] + df['閱讀成績'] + df['寫作成績']
df['平均分'] = df['總分'] / 3
df['等級'] = df.apply(lambda x: '優(yōu)秀' if x['平均分'] >= 90 else '良好' if x['平均分'] >= 80 else '中等' if x['平均分'] >= 70 else '及格' if x['平均分'] >= 60 else '不及格', axis=1)

# 打印修改后的數(shù)據(jù)幀
print(df.head())

import seaborn as sns
import matplotlib.pyplot as plt
# 指定字體
plt.rcParams['font.sans-serif'] = ['SimHei']
# 統(tǒng)計每個家長受教育水平的人數(shù),并繪制水平柱狀圖
edu_counts = df['父母教育程度'].value_counts()
plt.bar(edu_counts.index, edu_counts.values)
plt.xlabel('父母教育程度')
plt.ylabel('人數(shù)')
plt.title('父母受教育程度的水平柱狀圖')
plt.show()

# 統(tǒng)計及格和不及格的人數(shù),并繪制餅圖
pass_counts = df['情況'].value_counts()

labels = ['及格', '不及格']
sizes = [pass_counts['Pass'], pass_counts['Fail']]

plt.pie(sizes,
        labels=labels,
        autopct='%1.1f%%')

plt.title('全體學生成績分布餅圖')
plt.axis('equal')
plt.show()

# 繪制數(shù)學成績、閱讀成績和寫作成績的直方圖
plt.hist(df['數(shù)學成績'], bins=10, alpha=0.5, label='math score')
plt.hist(df['閱讀成績'], bins=10, alpha=0.5, label='reading score')
plt.hist(df['寫作成績'], bins=10, alpha=0.5, label='writing score')

plt.legend(loc='upper right')
plt.xlabel('成績')
plt.ylabel('人數(shù)')
plt.title('各科成績分布直方圖')
plt.show()

# 繪制父母受教育程度和前置課程是否完成的分類圖
sns.countplot(x='父母教育程度',
              data=df,
              hue='課程完成情況')
plt.title('父母受教育程度與前置課程是否完成統(tǒng)計分類圖')
plt.show()

# 繪制成績評級和性別分布的箱線圖
sns.boxplot(x='等級',
            y='總分',
            hue='性別',
            data=df)
plt.title('成績評級與性別分布箱線圖')
plt.show()

# 繪制午餐標準和總成績的性別分類散點圖
sns.scatterplot(x='午餐',
                y='總分',
                hue='性別',
                data=df)
plt.title('午餐標準與總成績的性別分類散點圖')
plt.show()

# 計算各特征之間的相關系數(shù),并繪制熱力圖
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('各特征的相關熱力圖')
plt.show()

附錄: 數(shù)據(jù)文件

本次案列所用到的CSV數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-455861.html

到了這里,關于Python數(shù)據(jù)可視化實戰(zhàn)期末課程設計——各科目考試成績可視化項目的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python數(shù)據(jù)分析與可視化期末簡答題復習

    1、可視化數(shù)據(jù)分析主要用了哪些圖表,說明其作用和意義。 ①柱狀圖:用于做比較。 ②折線圖:用于看數(shù)據(jù)變化的趨勢。 ③餅狀圖:用于看各部分的占比。 ④散點圖:用于二維數(shù)據(jù)的比較。 ⑤氣泡圖:用于用戶三維數(shù)據(jù)的比較。 ⑥雷達圖:用于四維以上數(shù)據(jù)的對比。 2、

    2024年02月12日
    瀏覽(26)
  • 數(shù)據(jù)可視化課程設計——北京新發(fā)地官網(wǎng)數(shù)據(jù)分析與可視化展示【內(nèi)容在jupyter notebook里面展示】包含數(shù)據(jù)爬取與可視化分析詳解

    數(shù)據(jù)可視化課程設計——北京新發(fā)地官網(wǎng)數(shù)據(jù)分析與可視化展示【內(nèi)容在jupyter notebook里面展示】包含數(shù)據(jù)爬取與可視化分析詳解

    目錄 一、課題說明 1.1、設計原因: 1.2、設計目標: 1.3、開發(fā)環(huán)境: 1.4、爬取網(wǎng)站鏈接 二、準備工作 2.1、數(shù)據(jù)獲?。?2.2、爬取的數(shù)據(jù)說明: 2.3、爬蟲程序設計的思路: 三、詳細設計 3.1、導入庫的模塊: 3.2、對數(shù)據(jù)先進行讀?。?3.2.1、顯示前5條記錄 3.2.2、查看數(shù)據(jù)的規(guī)模

    2024年02月08日
    瀏覽(21)
  • python爬蟲實戰(zhàn)——數(shù)據(jù)可視化

    本篇文章將介紹如何利用Python爬蟲獲取數(shù)據(jù)并進行可視化展示,包括以下主要內(nèi)容: 數(shù)據(jù)獲?。菏褂胷equests庫發(fā)送HTTP請求獲取目標網(wǎng)頁的數(shù)據(jù); 數(shù)據(jù)解析:使用BeautifulSoup庫對HTML代碼進行解析提取所需數(shù)據(jù); 數(shù)據(jù)存儲:使用pandas庫將數(shù)據(jù)保存至本地文件; 數(shù)據(jù)可視化:使用

    2024年02月13日
    瀏覽(15)
  • [小塵送書-第二期]《Power BI數(shù)據(jù)分析與可視化實戰(zhàn)》數(shù)據(jù)清洗、數(shù)據(jù)建模、數(shù)據(jù)可視化設計與高級技法

    [小塵送書-第二期]《Power BI數(shù)據(jù)分析與可視化實戰(zhàn)》數(shù)據(jù)清洗、數(shù)據(jù)建模、數(shù)據(jù)可視化設計與高級技法

    大家好,我是小塵,歡迎你的關注!大家可以一起交流學習!歡迎大家在CSDN后臺私信我!一起討論學習,討論如何找到滿意的工作! ?????博主主頁:小塵要自信 ?????推薦專欄: ?????《1》開發(fā)環(huán)境配置攻略 ?????《2》Java程序員的成長 ?????《3》2023Java面試實

    2024年02月13日
    瀏覽(30)
  • Python 數(shù)據(jù)分析與可視化實戰(zhàn)

    Python 數(shù)據(jù)分析與可視化實戰(zhàn)

    Python作為一門優(yōu)秀的編程語言,受到很多程序員和編程愛好者的青睞。近年來,Python還在辦公領域大展拳腳,許多白領紛紛加入了學習Python的行列。這是因為Python在數(shù)據(jù)的采集、處理、分析與可視化方面有著獨特的優(yōu)勢,能夠幫助職場人士從容應對大數(shù)據(jù)時代的挑戰(zhàn)。 要想編

    2024年02月01日
    瀏覽(17)
  • 【數(shù)據(jù)分析與可視化】利用Python對學生成績進行可視化分析實戰(zhàn)(附源碼)

    【數(shù)據(jù)分析與可視化】利用Python對學生成績進行可視化分析實戰(zhàn)(附源碼)

    需要源碼和數(shù)據(jù)集請點贊關注收藏后評論區(qū)留言私信~~~ 下面對學生成句和表現(xiàn)等數(shù)據(jù)可視化分析 1:導入模塊 2:獲取數(shù)據(jù) 并打印前四行 ?屬性列表對應含義如下 Gender? 性別 Nationality? 國籍 PlaceofBirth 出生地 Stageid 學校級別 Gradeid 年級 Sectionid? 班級 Topic 科目 semester 學期 ra

    2024年02月03日
    瀏覽(26)
  • 數(shù)據(jù)可視化 | 期末復習 | 補檔

    數(shù)據(jù)可視化 | 期末復習 | 補檔

    將非視覺的數(shù)據(jù)通過某種映射的方式(生成圖像)串聯(lián)視覺表達,生成可讀可識別的結(jié)果,幫助用戶高效地完成一些目標。 科學可視化 側(cè)重于使用計算機圖形學來創(chuàng)建視覺圖像,主要關注三維現(xiàn)象(具有天然幾何結(jié)構(gòu)的數(shù)據(jù))的可視化,如建筑學、氣象學、醫(yī)學或生物學方

    2024年01月21日
    瀏覽(44)
  • python 數(shù)據(jù)分析可視化實戰(zhàn) 超全 附完整代碼數(shù)據(jù)

    python 數(shù)據(jù)分析可視化實戰(zhàn) 超全 附完整代碼數(shù)據(jù)

    代碼+數(shù)據(jù):https://download.csdn.net/download/qq_38735017/87379914 1.1.1 異常值檢測 ①將支付時間轉(zhuǎn)為標準時間的過程中發(fā)生錯誤,經(jīng)排查錯誤數(shù)據(jù)為‘2017/2/29’,后將其修改為‘2017/2/27’。 ②經(jīng)檢測發(fā)現(xiàn)部分訂單應付金額與實付金額都為0,抹去這部分異常數(shù)據(jù)。 ③在檢測過程中發(fā)現(xiàn)部

    2024年02月02日
    瀏覽(21)
  • Python畢業(yè)設計 抖音短視頻數(shù)據(jù)分析與可視化 - python 大數(shù)據(jù) 可視化

    Python畢業(yè)設計 抖音短視頻數(shù)據(jù)分析與可視化 - python 大數(shù)據(jù) 可視化

    ?? 這兩年開始畢業(yè)設計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設,學長分享優(yōu)質(zhì)畢業(yè)設計項目,今天

    2024年02月02日
    瀏覽(28)
  • Python 數(shù)據(jù)采集、清洗、整理、分析以及可視化實戰(zhàn)

    大概可以分為下面這幾個步驟: 數(shù)據(jù)采集; 原始數(shù)據(jù)完整性檢查; 數(shù)據(jù)清洗、整理; 從不同角度對數(shù)據(jù)進行分析; 數(shù)據(jù)可視化; 總結(jié); 主要使用 Python 來進行分析: 數(shù)據(jù)采集: 主要涉及的 python 庫包括 requests,BeautifulSoup,csv,以及一些其他常用工具。 數(shù)據(jù)完整性檢查: 包

    2024年02月09日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包