参考资料:
《Python数据分析基础》,作者[美]Clinton W. Brownley,译者陈光欣,中国工信出版集团,人民邮电出版社
Excel文件简述
Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件,它几乎无处不在,是商业活动中不可或缺的工具。使用Python可以处理Excel文件中的数据。
与Python的csv模块不同,Python中没有处理Excel文件的标准模块。我们需要安装xlrd和xlwt两个模块。
内省Excel工作簿
我们创建一个Excel工作簿,并在其中添加3个独立的工作表,如下图所示。
Excel文件与CSV文件至少在两个重要方面有所不同。首先,CSV文件是纯文本文件,而Excel文件不是纯文本文件,我们不能在文本编辑器中打开它并查看数据。其次,与CSV文件不同,一个Excel工作簿被设计成包含多个工作表。
通过内省一个工作簿,我们可以在实际开始处理工作簿中的数据之前,检查工作表的数目和每个工作表中的数据类型和数据量。
下面我们使用Python分析上面的工作簿,来确定工作簿中工作表的数量、名称和每个工作表中行列的数量。
#!/usr/bin/env python3
import sys
from xlrd import open_workbook
input_file = sys.argv[1]
workbook = open_workbook(input_file)
print('Number of worksheets: ', workbook.nsheets)
for worksheet in workbook.sheets():
print("Worksheet name: ", worksheet.name, "\tRows: ", worksheet.nrows, "\tColumns: ", worksheet.ncols)
我们来解释一下上面的代码。
from xlrd import open_workbook
这行代码导入xlrd模块的open_workbook()
函数来读取和分析Excel文件。
workbook = open_workbook(input_file)
这行代码使用open_workbook()
函数打开一个Excel输入文件,并赋给对象workbook
。可以使用这个对象从工作簿中得到单独的工作表。
for worksheet in workbook.sheets():
print("Worksheet name: ", worksheet.name, "\tRows: ", worksheet.nrows, "\tColumns: ", worksheet.ncols)
for
循环语句在工作簿中的所有工作表之间迭代。workbook
对象的sheets()
方法可以识别出工作簿中所有的工作表。print
语句使用workbook
对象的name
, nrows
, ncols
属性来确定每个工作表的名称以及行与列的数量。
我们在命令行窗口中运行这个脚本,得到下面的输出结果。