Python数据分析基础——Excel文件——处理单个工作表——读写Excel文件(1)

参考文献:《Python数据分析基础》

前言

尽管Excel工作簿可以包含多个工作表,但有时只需一个工作表中的数据。此外,知道如何分析一个工作表,就很难扩展到分析多个工作表。

创建脚本

#!/usr/bin/env python3
import sys
from xlrd import open_workbook
from xlwt import Workbook

input_file = sys.argv[1]
output_file = sys.argv[2]

output_workbook = Workbook()
output_worksheet = output_workbook.add_sheet('jan_2013_output')

with open_workbook(input_file) as workbook:
	worksheet = workbook.sheet_by_name('january_2013')
	for row_index in range(worksheet.nrows):
		for column_index in range(worksheet.ncols):
			output_worksheet.write(row_index, column_index, worksheet.cell_value(row_index, column_index))
output_workbook.save(output_file)

脚本代码注释

from xlrd import open_workbook
from xlwt import Workbook

这两行代码中,第一行导入xlrd模块的open_workbook函数,第二行导入xlwt模块的Workbook函数。

output_workbook = Workbook()
output_worksheet = output_workbook.add_sheet('jan_2013_output')

第一行代码实例化了一个Workbook函数对象,用于将结果输入输出文件。第二行代码通过add_sheet函数,在输出文件中创建了名为‘jan_2013_output’的工作表。

worksheet = workbook.sheet_by_name('january_2013')

这行代码使用sheet_by_name函数,引用输入文件中名为‘january_2013’的工作表。

	for row_index in range(worksheet.nrows):
		for column_index in range(worksheet.ncols):
			output_worksheet.write(row_index, column_index, worksheet.cell_value(row_index, column_index))

在这三行代码中,建立了for循环控制流语句,作用是遍历工作表中的每一个单元格。在这里,小编认为把每一个单元格都看作成坐标更能直观地理解,其本质就是从左到右,从上到下依次进行遍历。在第三行代码中,前面的row_index和column_index,小编认为起到定位的作用。小编在进行实操的过程中,将这两个参数删去了,运行效果如下图:
在这里插入图片描述
所以通过这个报错,小编猜测,这两个变量的作用是进行定位,为cell_value函数做铺垫。cell_value函数的作用是返回单元格中的数值。这一行代码连起来,可以解释为,访问输入文件中的相应单元格的数据,在输出文件对应的位置进行定位,最后将数据写入输出文件。

output_workbook.save(output_file)

最后一行代码,保存并关闭输出文件簿。

运行代码

在命令行输入以下命令,然后按回车键:
在这里插入图片描述

查看结果

在这里插入图片描述

思考

通过观察不难发现,Purchase Date一列并不是与原来一样的格式,但这一列确实是代表着日期,但并没有格式化为日期的形式。所以我们得思考一下,应该如何做呢?

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值