一文看懂用Python读取Excel数据

导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上)。

Python处理Excel文件主要是第三方模块库xlrd、xlwt、pyexcel-xls、xluntils和pyExcel-erator等,此外Pandas中也带有可以读取Excel文件的模块(read_excel)。

基于扩展知识的目的,本文使用xlrd模块读取Excel数据。

作者:宋天龙
来源:大数据DT(ID:bigdatadt)

首先安装该库,Anaconda中已经默认安装了xlrd和xlwt模块,用于Excel的读写操作。如果读者系统环境中没有,可以在Jupyter输入以下命令安装。

!pip install xlrd

然后我们以“附件-chapter2”文件夹中的demo.xlsx数据文件为例,介绍该库的具体应用。

附件下载地址:

http://www.dataivy.cn/book/python_book_v2.zip

数据概览如图所示。

▲数据文件内容

import xlrd  # 导入库# 打开文件xlsx = xlrd.open_workbook('demo.xlsx')# 查看所有sheet列表print('All sheets: %s' % xlsx.sheet_names())

上述代码中,我们先读取一个Excel文件,输出文件的sheet名称列表。由于里面只有一张sheet,一次只有一个值。

结果为:

All sheets: ['Sheet1']

查看sheet1的数据概况:

sheet1 = xlsx.sheets()[0]    # 获得第1张sheet,索引从0开始sheet1_name = sheet1.name    # 获得名称sheet1_cols = sheet1.ncols   # 获得列数sheet1_nrows = sheet1.nrows  # 获得行数print('Sheet1 Name: %s\nSheet1 cols: %s\nSheet1 rows: %s' % (sheet1_name, sheet1_cols, sheet1_nrows))

我们分别获取了第1张sheet(虽然里面只有一张,但在多sheet情况下可通过索引循环输出)的名称、列数量和行数据。结果如下:

Sheet1 Name: sheet1
Sheet1 cols: 4
Sheet1 rows: 10

查看sheet1的特定切片数据:

sheet1_nrows4 = sheet1.row_values(4)  # 获得第4行数据sheet1_cols2 = sheet1.col_values(2)   # 获得第2列数据cell23 = sheet1.row(2)[3].value       # 查看第3行第4列数据print('Row 4: %s\nCol 2: %s\nCell 1: %s\n' % (sheet1_nrows4, sheet1_cols2, cell23))

通过查看特定行、列或行列组合的索引来输出,结果如下:

Row 4: ['431381197408191515', '有效', 42725.0, '深圳市']
Col 2: ['Create_Time', 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0, 42725.0]
Cell 1: 深圳市

查看sheet1的数据明细:

for i in range(sheet1_nrows):  # 逐行打印sheet1数据    print(sheet1.row_values(i))

逐条输出结果,部分结果如下(为了节约篇幅,中间的数据内容以…代替):

['ID_number', 'Status', 'Create_Time', 'Business_City']
['431381198109106573', '有效', 42725.0, '深圳市']
['431381198809122734', '有效', 42725.0, '深圳市']

['431381198901176911', '有效', 42725.0, '深圳市']
['43138119870827275X', '有效', 42725.0, '深圳市']

上述操作只是将数据从Excel中读取出来,将读取的数据转换为数组便可以进行矩阵计算。由于矩阵计算大多是基于数值型数据实现的,因此上述数据将无法适用于大多数科学计算场景,这点需要注意。

总结:在企业实际场景中,由于Excel本身的限制和适用,其无法存储和计算过大(例如千万级的数据记录)的数据量,并且Excel本身也不是为了海量数据的应用而产生的,因此,Excel可以作为日常基本数据处理、补充数据来源或者汇总级别的数据进行读取,同时也可以作为数据结果展示的载体,这种应用下对于大量数值表格的应用效果非常好。

关于作者:宋天龙,深大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(德国最大在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设计、业务需求转换、数据结构梳理、数据建模与学习以及数据工程交付。在电子商务、零售、银行、保险等多个行业拥有丰富的

(0)

相关推荐

  • selenium实现excel文件数据的读、写

    selenium实现excel文件数据的读.写在进行软件测试或设计自动化测试框架时,一个不可避免的过程就是: 参数 化,在利用 python 进行自动化测试开发时,通常会使用 excel 来做数据管  ...

  • 【python】解析Excel中使用xlrd库、xlwt库操作,读取excel进阶完整脚本实例(四)

    本次主要通过脚本展现使用xlrd库.xlwt库的完整操作,对象是比较常见的表格,通过这两个脚本的学习,实现对Excel的进阶操作. 首先,我们定义一个表格example_excel.xls,如图所示: ...

  • 【python】解析Excel中使用xlrd库、xlwt库操作,读取Excel文件详解(一)

    上文提供了Excel文件读写操作的基本模板,本文进一步详解这两个模块的功能. 一.Book(class) 由xlrd.open_work("example.xls")返回 nshe ...

  • 【B2B】一文看懂慧聪“信息+交易+数据+金融”生态布局版图

    导读 日前,慧聪集团(02280.HK)发布2017年度报告,报告显示,慧聪集团2017年实现收入37亿元,同比增长89%.归属股东净利润为2.67亿元,同比增长47.3%.经过多年的发展,目前慧聪已 ...

  • 一文看懂Python异常处理(exception, try和raise语句)

    一个Python程序在运行时,如果解释器遇到到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常(Exception).即便Python程序的语法是正确的,还是会有各种各样意想不到的异常或错 ...

  • 一文看懂Python的装饰器

    在 Python 中使用装饰器,可以在不修改代码的前提下,为已有的函数添加新功能,例如打印日志.缓存数据等. 为什么需要装饰器 假如你要为某个函数添加新功能.直接的办法是,在该函数中实现这个功能,或者 ...

  • 一文看懂Python系列文章 - 入门与进阶必备

    本文收集整理了本公众号已发表的一文看懂Python系列精华文章,建议先收藏后阅读. 入门篇 一文看懂Python列表.元组和字符串操作 一文看懂Python字典类型数据常见操作及排序 一文看懂Pyth ...

  • 一文看懂Python面向对象编程(Python学习与新手入门必看)-绝对原创

    尽管网上有许多关于Python面向对像的编程介绍,小编我看完后总觉得不是很满意,也不过瘾,所以决定自己亲自动手写篇文章,帮你理解Python面向对象的编程的基本概念和核心思想.本文内含很多实例代码,以 ...

  • 一文看懂Python系列之装饰器(decorator)(工作面试必读)

    Python的装饰器(decorator)可以说是Python的一个神器,它可以在不改变一个函数代码和调用方式的情况下给函数添加新的功能.Python的装饰器同时也是Python学习从入门到精通过程中 ...

  • 一文看懂Python中的集合运算&,|,

    关于集合的概念 Python 中常用的集合方法是执行标准的数学运算,例如:求并集.交集.差集以及对称差.下图显示了一些在集合 A 和集合 B 上进行的标准数学运算.每个韦恩(Venn)图中的红色部分是 ...

  • 一文看懂“碳交易”

    文 章 导 读 根据国家统一部署,全国碳市场将在今年6月底前启动上线交易!但是,究竟什么是碳交易?恐怕,好多人不一定能讲的明白.今天主要和大家梳理一下有关碳中和.碳交易.碳配额背后的名词概念,希望对大 ...

  • 【干货】一文看懂光伏产业链

    太阳能光伏发电是太阳能发电的重要分支,主要是指利用太阳能电池直接将太阳光能转化为电能,而太阳能电池通常是利用半导体器件的光伏效应原理进行光电转换. 按照光伏电池片的材质,太阳能电池大致可以分为两类:一 ...