如何用 Python 将 Excel 表格转成可视化图形?| 原力计划
作者 | Waao666
责编 | 王晓曼
出品 | CSDN 博客
前言
大家知道,考研很大一部分也是考信息收集能力。每年往往有很多人就是在这上面栽跟头了,不能正确分析各大院校往年的录取信息,进而没能选择合适的报考院校。
至于很多院校的录取信息是以 PDF 形式发布,例如我手上的深大电通录取结果,这就需要我们先把 PDF 转化为 Excel 啦。
(1)PDF
(2)Excel
有了 Excel,那我们就可以为所欲为了!
开始
1. 载入 Excel 表格
#coding=utf8
import xlrd
import numpy as np
from pyecharts.charts import Bar
from pyecharts.charts import Pie, Grid
from pyecharts import options as opts#==================== 准备数据 ====================
# 导入Excel 文件
data = xlrd.open_workbook("C:/深圳大学电子与信息工程学院2020年电子信息硕士生拟录取名单.xlsx")
# 载入第一个表格
table = data.sheets()[0]
2. 提取 Excel 表格数据
tables = []def Read_Excel(excel):# 从第4行开始读取数据,因为这个Excel文件里面从第四行开始才是考生信息for rows in range(3, excel.nrows-1):dict_ = {"id":"", "name":"", "status":"", "preliminary_score":"", "retest_score":"", "total_score":"", "ranking":""}dict_["id"] = table.cell_value(rows, 1)dict_["name"] = table.cell_value(rows, 2)dict_["status"] = table.cell_value(rows, 3)dict_["remarks"] = table.cell_value(rows, 4)dict_["preliminary_score"] = table.cell_value(rows, 5)dict_["retest_score"] = table.cell_value(rows, 6)dict_["total_score"] = table.cell_value(rows, 7)dict_["ranking"] = table.cell_value(rows, 8)# 将未被录取或者非普通计划录取的考生滤除if dict_["status"] == str("拟录取") and dict_["remarks"] == str("普通计划"):tables.append(dict_)
我们打印一下看看是否正确取出数据:
# 执行上面方法
Read_Excel(table)
for i in tables:print(i)
可以看到一切顺利。
3. 数据分段统计
这步因人而异,我只是想把各个分数段进行单独统计而已,大家也可以根据自己的喜好做其它的处理。
num_score_300_310 = 0
num_score_310_320 = 0
num_score_320_330 = 0
num_score_330_340 = 0
num_score_340_350 = 0
num_score_350_360 = 0
num_score_360_370 = 0
num_score_370_380 = 0
num_score_380_390 = 0
num_score_390_400 = 0
num_score_400_410 = 0
min_score = 999
max_score = 0# 将各个分段的数量统计
for i in tables:score = i["preliminary_score"]if score > max_score:max_score = scoreif score < min_score:min_score = scoreif score in range(300, 310):num_score_300_310 = num_score_300_310 + 1elif score in range(310, 320):num_score_310_320 = num_score_310_320 + 1elif score in range(320, 330):num_score_320_330 = num_score_320_330 + 1elif score in range(330, 340):num_score_330_340 = num_score_330_340 + 1elif score in range(340, 350):num_score_340_350 = num_score_340_350 + 1elif score in range(350, 360):num_score_350_360 = num_score_350_360 + 1elif score in range(360, 370):num_score_360_370 = num_score_360_370 + 1elif score in range(370, 380):num_score_370_380 = num_score_370_380 + 1elif score in range(380, 390):num_score_380_390 = num_score_380_390 + 1elif score in range(390, 400):num_score_390_400 = num_score_390_400 + 1elif score in range(400, 410):num_score_400_410 = num_score_400_410 + 1# 构建两个元组用以后期建表方便
bar_x_axis_data = ("300-310", "310-320", "320-330", "330-340", "340-350", "350-360", "360-370", "370-380", "380-390", "390-400", "400-410")
bar_y_axis_data = (num_score_300_310, num_score_310_320, num_score_320_330,\num_score_330_340, num_score_340_350, num_score_350_360,\num_score_360_370, num_score_370_380, num_score_380_390,\num_score_390_400, num_score_400_410)
绘制可视化图形
1、柱状图:
#===================== 柱状图 =====================
# 构建柱状图
c = (Bar().add_xaxis(bar_x_axis_data).add_yaxis("录取考生", bar_y_axis_data, color="#af00ff").set_global_opts(title_opts=opts.TitleOpts(title="数量")).render("C:/录取数据图.html")
)
2、饼图:
#====================== 饼图 ======================
c = (Pie(init_opts=opts.InitOpts(height="800px", width="1200px")).add("录取分数概览",[list(z) for z in zip(bar_x_axis_data, bar_y_axis_data)],center=["35%", "38%"],radius="40%",label_opts=opts.LabelOpts(formatter="{b|{b}: }{c} {per|{d}%} ",rich={"b": {"fontSize": 16, "lineHeight": 33},"per": {"color": "#eee","backgroundColor": "#334455","padding": [2, 4],"borderRadius": 2,},})).set_global_opts(title_opts=opts.TitleOpts(title="录取", subtitle='Made by 王昊'),legend_opts=opts.LegendOpts(pos_left="0%", pos_top="65%")) .render("C:/录取饼图.html")
)
大功告成!!是不是超级直观哈哈!
版权声明:本文为CSDN博主「Waao666」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40973138/article/details/106190092
推荐阅读
重构ncnn,腾讯优图开源新一代移动端推理框架TNN
墨奇科技汤林鹏:如何用 AI 技术颠覆指纹识别?
性能超越最新序列推荐模型,华为诺亚方舟提出记忆增强的图神经网络
研发的未来在哪里?Serverless 云开发来了!
真惨!连各大编程语言都摆起地摊了!
国外小伙怒喷加密货币行业:入行两年,我受够了!
你点的每个“在看”,我都认真当成了AI
相关文章:

Mac OS X 下mysql配置备忘
从windows过渡到os x确实需要适应,对于开发人员来讲更是这样。从官网下载目前最新版本的mysql 5.7.13,下载地址:http://dev.mysql.com/downloads/mysql/刚开始非常顺利的安装完mysql,这时候我还没有意识到密码的问题,直…

为 ASP.NET Datagrid 创建自定义列
Marcie Robillard DatagridGirl.com 2003 年 9 月 简介 不得不承认,为 Microsoft ASP.NET 编写 Datagrid 代码包括大量的重复工作。尽管我深受该控件的困扰,但我还是不断寻找简化这类任务的捷径。谁都不愿意做重复的工作,对不对࿱…
不怕面试被问了!二叉树算法大盘点
作者 | BoCong-Deng题图 | 视觉中国出品 | CSDN博客树结构对于程序员来说应该不陌生,特别是二叉树,基本只要接触算法这一类的都一定会碰到的,所以我打算通过一篇文章,对二叉树结构的相关算法进行总结汇总,思路和代码实…

Field types
2019独角兽企业重金招聘Python工程师标准>>> Field types The generated Form class will have a form field for every model field. Each model field has a corresponding default form field. For example, a CharField on a model is represented as a CharFie…

【51CTO学院三周年】我的职业生涯有贵人相助--小强老师
个人认为功能测试做到一定年限之后,自然会遇到职业生涯中最大瓶颈——转型。对此,我的经历是这样的。话说那还是两年前,在搜索某问题的时候发现了51CTO,从中看到了很多大牛的博文和视频课程,顿时感觉自己找到宝了&…

在.NET中实现彩色光标,动画光标和自定义光标
作者:孟宪会 微软MVPTest.cs using System;using System.Drawing;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Reflection; namespace ColorCursor{ public class Form1 : System.Windows.Forms.Form { [DllImport("us…

magento模板区块--首页content区块
首页替换 自定义首页content内容 在cms-->>page 新建首页 在content 里加入 -------------------------- <div class"col-left side-col"> <p class"home-callout"><a href"{{store direct_url"apparel/shoes/womens/anash…
遮挡也能识别?地平线提出时序信息提升行人检测准确度|CVPR 2020
来源 | 驭势科技行人检测作为计算机视觉领域最基本的主题之一,多年来被广泛研究。尽管最先进的行人检测器已在无遮挡行人上取得了超过 90% 的准确率,但在严重遮挡行人检测上依然无法达到满意的效果。究其根源,主要存在以下两个难点࿱…

通过响应式web设计,使本站支持手机浏览
2019独角兽企业重金招聘Python工程师标准>>> 2014-01-28 14:49:14 现在越来越多的人通过手机来上网,手机由于屏幕尺寸的原因,当浏览为PC端浏览器设计的网页的时候,往往会出现各种各样的问题。 糊涂僧的这个小博客也一样࿰…

在ASP.NET中跨页面实现多选
作者:孟宪会 微软MVP SelectMultiPages.aspx <% Page EnableViewState"true" CodeBehind"SelectMultiPages.aspx.cs" Language"c#" AutoEventWireup"false" Inherits"eMeng.Exam.SelectMultiPages" %><…

c#有多少种可能导致写文件失败?
1.路径中有非法字符 Path.GetInvalidPathChars() 2.文件名中有非法字符 Path.GetInvalidFileNameChars() 3.文件创建时,文件夹只读。 4.文件创建时,文件夹权限不足,如需要管理员权限。 5.文件创建时,文件夹不存在。 6.系统目录&am…
抖音、快手和直播行业的火爆究竟给了谁机会?
经常收到一些CSDN小伙伴的留言,反馈如下这样的困惑“短视频这么火爆,我该学些什么技术才能入行?”“我想从事音视频开发,该如何入门和进阶?真的像坊间传闻的那么难吗?”音视频的开发前景做一个不恰当的比喻…

android上line-height的问题
关于line-height大家应该非常熟悉了吧,就是用来做垂直居中的,屡试不爽,基本上没有什么问题,但是最近一个项目,测试提了一个bug,看图吧。 从别处窃的图,这个问题只有安卓上才能复现,做…

深入讲解 ASP+ 验证
Anthony Moore Microsoft Corporation 2000年10月简介 这篇文章详细讲解了 ASP 验证控件的工作方式。如果要生成其中包含验证控件的复杂页面,或是要扩展验证框架,建议您阅读本文。如果要学习使用验证控件,或是要决定是否使用验证控件&…

EditText和TextView出现中文、英文等string串的排版问题
默认EditText和TextView自动换行。如果在string中出现了中文字符,排版出现意外,如图所示: 这是因为软盘默认的是半角输入,而字母与数字的占位与汉字不同,所以在默认的情况下会出现如上的排版情况。 但是如果将默认的半…
阿里云蒋江伟:我们致力于为世界提供70%的算力 | 凌云时刻
导读:6月9日,2020阿里云峰会在云端召开,阿里巴巴合伙人、阿里云智能基础产品事业部高级研究员蒋江伟出席峰会并做了题为《新基建,新算力:阿里云基础设施算力全新升级》的重磅发布。(以下内容为演讲实录&…

zabbix 微信报警( python 2.x )
python 2.x 微信报警脚本#!/usr/bin/python #_*_coding:utf-8 _*_ __author__ lvnianimport urllib,urllib2 import json import sysdef gettoken(corpid,corpsecret):gettoken_url https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid corpid &corpsecret corpsec…
利用 AssemblyAI 在 PyTorch 中建立端到端的语音识别模型
作者 | Comet译者 | 天道酬勤,责编 | Carol出品 | AI 科技大本营(ID:rgznai100)这篇文章是由AssemblyAI的机器学习研究工程师Michael Nguyen撰写的。AssemblyAI使用Comet记录、可视化和了解模型开发流程。深度学习通过引入端到端的…

PHP中的页面跳转
PHP页面跳转一、header()函数 点击按钮<input type"submit" name "submit" value"确定" /> 使用POST方式<form action"X.php" method"post"> X.php页面只做判断逻辑 处理完以后 <?php //isset函数 if…

Closure Compiler 使用
为什么80%的码农都做不了架构师?>>> 该项目首页:http://code.google.com/intl/zh-CN/closure/compiler/ 下载地址:http://closure-compiler.googlecode.com/files/compiler-latest.zip 下载后解压,即可看到compiler.j…

如何通过动态生成Html灵活实现DataGrid分类统计的界面显示功能
作者:未知 请作者速与本人联系步入 IT 业已经有几年的时间了 , 从最早接触 pb6.0 到现在 .Net 技术 , 计算机技术不论是从硬件还是软件都有巨大的进步 . 而中国程序员总体水平在世界上也是远远落后,其中缺乏完善的体系、必要的交流和程序员个人英雄主义…

Revit二次开发之“选择某一楼层的墙”
其实就是过滤器的用法。这里想要找到同一楼层中的风管,不可行。 要用:duct.ReferenceLevel//选择某一楼层上的墙[Transaction(TransactionMode.Manual)][Regeneration(RegenerationOption.Manual)]//[Journaling(JournalingMode.NoCommandData)]publiccl…
百变应用场景下,优酷基于图执行引擎的算法服务框架筑造之路!
作者| 阿里文娱高级专家 随方,阿里文娱开发专家 轩成责编 | 屠敏头图 | CSDN 下载自视觉中国背景在阿里的业务中,有广泛的算法应用场景,也沉淀了相关的算法应用平台和工具:基础的算法引擎部分,有成熟的召回和打分预估引…

Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)
上一节我们讨论了 attach volume 操作中 cinder-api 的工作,本节讨论 cinder-volume 和 nova-compute 如何将 volume attach 到 Instance。cinder-volume 初始化 volume 的连接cinder-volume 接收到 initialize_connection 消息后,会通过 tgt 创建 targe…

关于DataGrid等控件中的自动编号
作者:未知 请作者速与本人联系序号内容1Taye2BOx3Glass4StarCraft一、正序A、AllowPagingFalse情况下<asp:DataGrid id"DataGrid1" runat"server"> <Columns> <asp:TemplateColumn> <ItemTemplate> …

45个优秀的国外电子商务网站设计实例
这篇文章与大家分享45个国外优秀的电子商务网站设计案例,希望能带给你灵感。对于电子商务网站来说,也许销售更多产品比漂亮的外观设计更重要,不过漂亮的东西总是能给用户留下深刻的印象,一起欣赏。 TALBOTS Free People Armani Ex…
曝光!十万开发者喜爱的顶级当红讲师
作为一枚后浪程序员,在互联网时代下我们拥有巨大优势:知识的时间空间界限被打破,让我们有机会学习到前沿技术知识。以往,大部分程序员都是是通过传统的博客文章、参与线下会议等形式来获取最新知识,而 CSDN 推出的在线…

连接centos7桌面方法
方法一: 第一步$sudo yum install tigervnc* 第二步$vncserver(提示输入连接密码) 第三步关防火墙或开5901..等端口 第四步vncview连接 方法二: 下载nomachine https://www.nomachine.com/download/linux&id1rpm -…

让“云”无处不在-Citrix Xenserver之一 环境搭建
让“云”无处不在-Citrix Xenserver 一、准备部署环境 马博峰 2011年8月 ——————————————————————————————————————— 一、Xenserver介绍 Citrix XenServer 是一个完整的服务器虚拟化平台,已针对 Windows 和 Linux 虚拟服务器…

DataGrid/DataList
很久以前就想写一些关于DataGrid/DataList的东西,但是一直以来,一方面自感所学未深,另一方面,总觉无从下笔,一拖再拖,离刚开始的念头已距一年有余。DataGrid/DataList在ASP.NET中的重要性,想必就…