人生苦短, 我选 Python
前文传送门
小白学 Python(1): 开篇 https://www.geekdigging.com/2019/10/12/2870915863/
小白学 Python(2): 基础数据类型 (上) https://www.geekdigging.com/2019/10/13/2870915864/
小白学 Python(3): 基础数据类型 (下) https://www.geekdigging.com/2019/10/15/25090937/
小白学 Python(4): 变量基础操作 https://www.geekdigging.com/2019/10/17/2392286754/
小白学 Python(5): 基础运算符 (上) https://www.geekdigging.com/2019/10/18/999362065/
小白学 Python(6): 基础运算符 (下) https://www.geekdigging.com/2019/10/20/2416267271/
小白学 Python(7): 基础流程控制 (上) https://www.geekdigging.com/2019/10/22/979409150/
小白学 Python(8): 基础流程控制 (下) https://www.geekdigging.com/2019/10/23/2184234984/
小白学 Python(9): 基础数据结构 (列表)(上) https://www.geekdigging.com/2019/10/23/3066758654/
小白学 Python(10): 基础数据结构 (列表)(下) https://www.geekdigging.com/2019/10/25/1277177083/
小白学 Python(11): 基础数据结构 (元组) https://www.geekdigging.com/2019/10/26/1783681326/
小白学 Python(12): 基础数据结构 (字典)(上) https://www.geekdigging.com/2019/10/27/1304658395/
小白学 Python(13): 基础数据结构 (字典)(下) https://www.geekdigging.com/2019/10/27/2327215405/
小白学 Python(14): 基础数据结构 (集合)(上) https://www.geekdigging.com/2019/10/29/2327215406/
小白学 Python(15): 基础数据结构 (集合)(下) https://www.geekdigging.com/2019/10/30/3105860436/
小白学 Python(16): 基础数据类型 (函数)(上) https://www.geekdigging.com/2019/10/31/3818474124/
小白学 Python(17): 基础数据类型 (函数)(下) https://www.geekdigging.com/2019/11/01/619492986/
小白学 Python(18): 基础文件操作 https://www.geekdigging.com/2019/11/01/3195979051/
小白学 Python(18): 基础文件操作 https://www.geekdigging.com/2019/11/01/3195979051/
小白学 Python(19): 基础异常处理 https://www.geekdigging.com/2019/11/03/271169345/
小白学 Python(20): 迭代器基础 https://www.geekdigging.com/2019/11/05/1111962512/
小白学 Python(21): 生成器基础 https://www.geekdigging.com/2019/11/06/988349733/
小白学 Python(22):time 和 calendar 模块简单使用 https://www.geekdigging.com/2019/11/07/908307735/
读取 Excel
不知道各位同学有没有见过有关 Python 操作 Excel 的广告. 小编是见过好多次的, 还只需 ¥9.9 就能学习, 今天小编就为大家带来免费的 Python 操作 Excel 的入门教程.
仔细看, 仔细学, 本文价值 ¥9.9 哦~~~
这牛逼吹得我自己都有点脸红.
既然要操作 Excel , 那我们就需要先建立一个 Excel .
首先在 Excel 中创建 3 个 Sheet , 别跟我说不知道什么是 Sheet , 可能你不适合看本篇内容.
测试使用 Excel 已经上传至代码仓库, 有需要的同学可以取用.
Excel 内容如下:
请先暂时忽略右下角的日期时间, 这日期时间并无实际作用, 仅用来演示使用.
这是一个 Sheet 的数据, 同样的 Sheet 存在 3 个.
可能各位同学看到这个 Excel 以后大致能猜到小编要干啥了, 对, 没错, 你猜对了, 小编就是要算一下平均成绩.
那么用 Excel 自带的公式来算平均成绩不香么, 非要用 Python 算, 劳民伤财的.
Excel 自带的函数确实强大, 这个不得不服, 但是, 我如果要跨 Sheet 的操作呢? 本文要玩的骚操作就是要跨 Sheet 计算平均成绩.
首先, 我们需要导入第三方模块 xlrd , 因为是第三方的模块, 没有安装的同学需要先安装. 在命令行中输入:
pip install xlrd
等待进度条走完就好了.
获取 workbook:
首先, 我们需要在代码中打开我们刚才创建的 Excel :
workbook = xlrd.open_workbook('test.xlsx')
小编这里为了方便, 将 test.xlsx 和代码放在同一目录, 实际在操作中需注意文件的路径问题, 不管是使用相对路径还是绝对路径, 都要写对.
Sheet 有关操作:
有关 Sheet 的操作有很多, 我们列举几个常用的:
- # 输出所有 sheet 的名字
- print(workbook.sheet_names())
- # 获取所有的 sheet
- print(workbook.sheets())
- # 根据索引获取 sheet
- print(workbook.sheet_by_index(1))
- # 根据名字获取 sheet
- print(workbook.sheet_by_name('1 班'))
输出结果我这里就不演示了, 各位同学自己操作下就知道了:)
常用操作:
获取行数和列数:
- sheet1 = workbook.sheets()[0]
- # 获取行数
- print(sheet1.nrows)
- # 获取列数
- print(sheet1.ncols)
结果如下:
6 4
获取整行和整列的数据 (数据类型为列表):
- # 获取第 2 行内容
- print(sheet1.row_values(1))
- # 获取第 3 列内容
- print(sheet1.col_values(2))
结果如下:
- ['小明', 76.0, 85.0, 95.0, '']
- ['数学', 85.0, 58.0, 96.0, '','']
获取单元格的数据:
- cell1 = sheet1.cell(1, 1).value
- # 行索引
- cell2 = sheet1.row(1)[1].value
- cell3 = sheet1.cell(1, 2).value
- # 列索引
- cell4 = sheet1.col(2)[1].value
结果如下:
76.0 76.0 85.0 85.0
获取日期类型数据:
- date_value = xlrd.xldate_as_datetime(sheet1.cell_value(5, 3), workbook.datemode)
- print(type(date_value), date_value)
结果如下:
<class 'datetime.datetime'> 2019-11-07 20:49:05
这里是直接通过方法将数据转成了 datetime 类型, xlrd 还提供了可以将数据转成元组, 然后再将元组转成日期.
- date_tulp = xlrd.xldate_as_tuple(sheet1.cell_value(5, 3), workbook.datemode)
- print(type(date_tulp), date_tulp)
- year, month, day, hour, minute, second = date_tulp
- print(datetime.datetime(year, month, day, hour, minute, second))
结果如下:
- <class 'tuple'>
- (2019, 11, 7, 20, 49, 5) 2019-11-07 20:49:05
今天的重头戏是求平均数, 但是我不想在文章里贴代码了, 只好请各位同学自己动下手咯~~~
当然, 如果实在搞不定可以访问代码仓库, 具体的实现代码小编还是会提交至代码仓库, 不过小编还是希望各位同学能独立完成作业~~
示例代码
本系列的所有代码小编都会放在代码管理仓库 GitHub 和 Gitee 上, 方便大家取用.
示例代码 - GitHub
示例代码 - Gitee
来源: https://www.cnblogs.com/babycomeon/p/11880144.html