python读取excelsheet-一文看懂用Python读取Excel数据

原标题:一文看懂用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)

python读取excelsheet-一文看懂用Python读取Excel数据_第1张图片

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

!pip install xlrd

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

附件下载地址:

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

数据概览如图所示。

python读取excelsheet-一文看懂用Python读取Excel数据_第2张图片

▲数据文件内容

importxlrd # 导入库

# 打开文件

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: %snSheet1 cols: %snSheet1 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: %snCol 2: %snCell 1: %sn'% (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的数据明细:

fori inrange(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中国区技术和咨询负责人(德国最大在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设计、业务需求转换、数据结构梳理、数据建模与学习以及数据工程交付。在电子商务、零售、银行、保险等多个行业拥有丰富的数据项目工作经验。

本文摘编自《Python数据分析与数据化运营》(第2版),经出版方授权发布。

延伸阅读《Python数据分析与数据化运营》

(第2版)

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:这是一本将数据分析技术与数据使用场景深度结合的著作,从实战角度讲解了如何利用Python进行数据分析和数据化运营。本书与同类书大的不同在于,并不只有纯粹的关于数据分析技术和工具的讲解,而且还与数据使用场景深度结合,在业务上真正可指导落地。此外,本书作者提供微信、邮箱等,可通过实时和离线两种方式及时为读者在线传道、受业、解惑。

「大数据」内容合伙人之「鉴书小分队」上线啦!

最近,你都在读什么书?有哪些心得体会想要跟大家分享?

数据叔最近搞了个大事——联合优质图书出版商机械工业出版社华章公司发起鉴书活动。

简单说就是:你可以免费读新书,你可以免费读新书的同时,顺手码一篇读书笔记就行。详情请在大数据公众号后台对话框回复合伙人查看。

Q:你打算去哪看看?

转载 / 投稿请联系:[email protected]

点击阅读原文,了解更多返回搜狐,查看更多

责任编辑:

你可能感兴趣的:(python读取excelsheet-一文看懂用Python读取Excel数据)