虽然Excel也支持一些图画操作,但是如果需要更加强大和灵活的可视化效果,把数据从Excel导入到Python中以备将来不时之需。
首先,我们需要安装必须的模块,这里需要安装xlrd模块。
$ pip install xlrd
示例代码:
#-*- coding: UTF-8 -*-
'''
#################################################
# Author : 余欢
# Date : Dec 26, 2015 4:14:08 PM
#company : 南京师范大学--大数据实验室
# description : Excel文件的读取
#################################################
'''
import xlrd
from fileinput import filename
'''
1 打开文件的工作簿
2 根据名称找到工作表。根据行数和列数读取单元格的内容
3 打印读取到的数据集和
'''
file = "/root/Desktop/data-visualization/data_visualization_Code/3367OS_02_Code/ch02-xlsxdata.xlsx"
wb = xlrd.open_workbook(filename=file)
ws = wb.sheet_by_name("Sheet1")
dataset = []
for r in xrange(ws.nrows):
col = []
for c in range(ws.ncols):
col.append(ws.cell(r, c).value)
dataset.append(col)
from pprint import pprint
'''
pprint 模块( pretty printer )
用于打印 Python 数据结构. 当你在命令行下打印特定数据结构时你会发现它很有用(输出格式比较整齐, 便于阅读).
'''
pprint(dataset)
如果要调用所有的工作表,可以使用sheets()方法,该方法返回一个xlrd.sheet.Sheet的实例列表。xlrd.sheet.Sheet有列和行的属性。我们可以利用这些属性来指定循环的范围,并通过cell()方法来访问工作表中每一个特定单元格中的内容。虽然有一个xlrd.sheet.Cell类,但不必使用它。
请注意,日期是以浮点数而不是某个日期的格式存储的。但是,xlrd有能力检查某个值是否是一个日期。这样,我们可以检查某个单元格的值,并推断该值是否是一个日期。这样我们就可以得到 python date数据类型。如果单元格值像一个日期,那么xlrd模块将返回xlrd.XL_CELL_DATE作为单元格类型。
xlrd一个非常好的特性是能够按需将数据加载到内存当中。open_workbook方法有一个on_demand参数,在调用时把它设置为True,工作表就能按需加载了。例如:
wb = xlrd.open_workbook("a.xlsx", on_demand=True)