最近闲来无事,就学习了一下Python数据分析,刚好学院发了一张学生的基本情况表,没事做就分析了一下。
废话不多说,就开始写代码。
首先读取Excel,犯了不少错,因为这个表有一个表头,所以在读取的时候去除掉表头。
df = pd.read_excel('计算机学生表.xlsx', header=1)
这个时候才正式读取到了 Excel 的字段和内容,然后开始了一通分析
我就分析了一下我们学院的困难生比例,发现比例占了15。49%,这个比例也还算正常的。
将读取到的困难生进行统计,并转为列表
special = list(df.loc[:, '困难生类别'].value_counts())
然后去除掉一些脏数据
del special[3]
对列表中的数值进行数学运算,并存储到列表中
for i in special:
i = i / 910
# 将 i 的值存储到预先定义的列表中
tmp.append(i)
最后贴出源码和结果:
# coding:utf-8
"""
计算机学院学生基本情况数据分析
"""
import pandas as pd
import matplotlib.pyplot as plt
# 解决中文乱码的问题和坐标轴负号的处理
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 预先定义一个列表用于存储各类学生的数量
tmp = []
# 读取Excel表格,并去除表头
df = pd.read_excel('计算机学生表.xlsx', header=1)
special = list(df.loc[:, '困难生类别'].value_counts())
del special[3]
# 定义饼图的标签
label = ['非困难生', '家庭困难', '家庭困难和残疾']
# 设置突出显示部分与原饼图的边距
explode = [0, 0.15, 0]
# 遍历special 列表
for i in special:
i = i / 910
# 将 i 的值存储到预先定义的列表中
tmp.append(i)
# 设置饼图为正圆
plt.axes(aspect='equal')
plt.pie(x=tmp,
labels=label,
autopct='%.2f%%',
explode=explode,
radius=1.1,
pctdistance=0.8,
labeldistance=1.2
)
plt.title("计算机学院困难生分析")
plt.show()
源码中有不足的地方请多指教,路漫漫其修远兮,吾将上下而求索。