笔记:使用Python处理Excel文件的一些代码示例,以下代码来自于《Python数据分析基础》一书,有删改

#!/usr/bin/env python3
# 导入读取Excel文件的库,xlrd,其中的 open_workbook 为读取工作簿
from xlrd import open_workbook
input_file = 'D:\wangm\Documents\learning\code\python\data_row.xlsx'
# open_workbook(input_file) 打开一个工作簿
workbook = open_workbook(input_file)
# 输出此工作簿中有多少个表 workbook.nsheets
print('Number of worksheets: ', workbook.nsheets)
# 遍历工作簿中的每张表
for worksheet in workbook.sheets():
# 分别输出每张表的名字、行数、列数
print('Worksheet name: ', worksheet.name, '\tRows: ', worksheet.nrows, '\tColumns: ', worksheet.ncols)
# 处理单个工作簿
#!/usr/bin/env python3
# 导入读取Excel文件的库,xlrd,其中的 open_workbook 为读取工作簿
from xlrd import open_workbook
# 导入写工作簿的库
from xlwt import Workbook
input_file = 'D:\wangm\Documents\learning\code\python\data_row.xlsx'
output_file = 'D:\wangm\Documents\learning\code\python\data_out.xlsx'
# 创建一个Workbook对象
output_workbook = Workbook()
# 向output_workbook中添加一种名为'out_data_sheet_1'的表
output_wb_sheet = output_workbook.add_sheet('out_data_sheet_1')
with open_workbook(input_file) as workbook:
# 通过名字选取工作簿中的某个表,也可以使用索引值选定
worksheet = workbook.sheet_by_name('supplier_data')
# worksheet = workbook.sheet_by_index(0)
# 通过行、列索引值遍历工作簿中指定表的每一个值
for row_index in range(worksheet.nrows):
for column_index in range(worksheet.ncols):
# 向工作簿中的一个选取的表(output_wb_sheet)的通过索引指定的单元格(row_index, column_index)中写入一个值
output_wb_sheet.write(row_index, column_index, worksheet.cell_value(row_index, column_index))
# 将该工作簿保存为 output_file
output_workbook.save(output_file)
#!/usr/bin/env python3
# 导入读取Excel文件的库,xlrd,其中的 open_workbook 为读取工作簿
from xlrd import open_workbook
input_file = 'D:\wangm\Documents\learning\code\python\data_row.xlsx'
# open_workbook(input_file) 打开一个工作簿
workbook = open_workbook(input_file)
# 输出此工作簿中有多少个表 workbook.nsheets
print('Number of worksheets: ', workbook.nsheets)
# 遍历工作簿中的每张表
for worksheet in workbook.sheets():
# 分别输出每张表的名字、行数、列数
print('Worksheet name: ', worksheet.name, '\tRows: ', worksheet.nrows, '\tColumns: ', worksheet.ncols)
# 处理单个工作簿
#!/usr/bin/env python3
# 导入读取Excel文件的库,xlrd,其中的 open_workbook 为读取工作簿
from xlrd import open_workbook
# 导入写工作簿的库
from xlwt import Workbook
input_file = 'D:\wangm\Documents\learning\code\python\data_row.xlsx'
output_file = 'D:\wangm\Documents\learning\code\python\data_out.xlsx'
# 创建一个Workbook对象
output_workbook = Workbook()
# 向output_workbook中添加一种名为'out_data_sheet_1'的表
output_wb_sheet = output_workbook.add_sheet('out_data_sheet_1')
with open_workbook(input_file) as workbook:
# 通过名字选取工作簿中的某个表,也可以使用索引值选定
worksheet = workbook.sheet_by_name('supplier_data')
# worksheet = workbook.sheet_by_index(0)
# 通过行、列索引值遍历工作簿中指定表的每一个值
for row_index in range(worksheet.nrows):
for column_index in range(worksheet.ncols):
# 向工作簿中的一个选取的表(output_wb_sheet)的通过索引指定的单元格(row_index, column_index)中写入一个值
output_wb_sheet.write(row_index, column_index, worksheet.cell_value(row_index, column_index))
# 将该工作簿保存为 output_file
output_workbook.save(output_file)
#!/usr/bin/env python3
import pandas as pd
input_file = 'D:\wangm\Documents\learning\code\python\data_row.xlsx'
output_file = 'D:\wangm\Documents\learning\code\python\data_out_pd.xlsx'
# pd.read_excel() 读取一个Excel文件,并指定选中其中的某张表,将其变为一个”数据框“对象
data_frame = pd.read_excel(input_file, sheetname='supplier_data')
# 创建一个Excel文件
writer = pd.ExcelWriter(output_file)
# 将data_frame转为Excel文件,并写入输出文件
data_frame.to_excel(writer, sheet_name='supplier_data', index=False)
# 保存输出文件
writer.save()
#
# 筛选特定的行
# 在基本Python中:
# 类似于之前处理CSV文件,无非是改变了读写文件的函数,过程都是去每一行的值,筛选出符合条件的行
# 保存下来,然后写入Excel文件
# 下面给出使用pandas库来筛选
#!/usr/bin/env python3
import pandas as pd
input_file = 'D:\wangm\Documents\learning\code\python\data_row.xlsx'
output_file = 'D:\wangm\Documents\learning\code\python\data_out_pd.xlsx'
data_frame = pd.read_excel(input_file, 'supplier_data', index_col=None)
# 筛选出Cost值大于500的行,将标题行和这些行作为一个新的‘数据框’对象
# 下面这条用于筛选的语句,通过列名作为索引去除Cost的值,并将其转换为float在进行比较,比较结果为真的行留了下来
# 缺陷:将Cost的值的 $ 的符号丢掉了
#data_frame_value_meets_condition = data_frame[data_frame['Cost'].astype(float) > 500.0]
writer = pd.ExcelWriter(output_file)
#data_frame_value_meets_condition.to_excel(writer, sheet_name='supplier_data', index=False)
#writer.save() # 还可以筛选出某一列中的值属于某个特定集合的行
important_dates = ['1/1/2018', '3/1/2018']
data_frame_value_in_set = data_frame[data_frame['Date'].isin(important_dates)]
data_frame_value_in_set.to_excel(writer, sheet_name='supplier_data', index=False)
writer.save()
# 此处写入后也将Cost的值的 $ 的符号丢掉了,起初我认为是因为被转换为float时的原因,然而此处却发现不是,那到底是为什么? # 类似于处理CSV文件,pandas在处理Excel文件时,也有类似于使用RE筛选的函数 # 此处就产生一个疑问,pandas读取CSV文件、Excel文件后得到的对象为何如此相似?希望在后面具体了解pandas库时得到答案

选取特定的列
 类似于处理CSV文件时的情况
 读取多个Excel文件时,类似于前面处理CSV文件时的情况,使用glob

以上代码示例分别使用基本Python和pandas库处理Excel文件,运行在Python3.6 Win10上的Spyder下

相关库文档:

xlrd

xlwt

使用Python处理Excel文件的一些代码示例的更多相关文章

  1. 使用Python处理CSV文件的一些代码示例

    笔记:使用Python处理CSV文件的一些代码示例,来自于<Python数据分析基础>一书,有删改 # 读写CSV文件,不使用CSV模块,仅使用基础Python # 20181110 wa ...

  2. [转]用Python读写Excel文件

    [转]用Python读写Excel文件   转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...

  3. python读写Excel文件的函数--使用xlrd/xlwt

    python中读取Excel的模块或者说工具有很多,如以下几种: Packages 文档下载 说明 openpyxl Download | Documentation | Bitbucket  The ...

  4. python之路-随笔 python处理excel文件

    小罗问我怎么从excel中读取数据,然后我百了一番,做下记录 以下代码来源于:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html ...

  5. Python处理Excel文件

    因为工作需求,需要审核一部分query内容是否有效,query储存在Excel中,文本内容为页面的Title,而页面的URL以HyperLink的格式关联到每个Cell. 于是本能的想到用Python ...

  6. 记录:python读取excel文件

    由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...

  7. Python解析excel文件并存入sqlite数据库

    最近由于工作上的需求 需要使用Python解析excel文件并存入sqlite 就此做个总结 功能:1.数据库设计 建立数据库2.Python解析excel文件3.Python读取文件名并解析4.将解 ...

  8. Python读写EXCEL文件常用方法大全

    前言 python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式. 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: 用pa ...

  9. php读取excel文件的实例代码

    php读取excel文件的实例代码. 代码: <?php /** * php读取excel文件 * by www.jbxue.com */ $this->loadexcel();//半酣p ...

随机推荐

  1. iOS学习笔记26-视频播放

    一.视频 在iOS中播放视频可以使用两个框架来实现: MediaPlayer框架的MPMoviePlayerController和MPMoviePlayerViewController AVFound ...

  2. 前端CSS规范大全(转)

    一.文件规范 1.文件均归档至约定的目录中. 具体要求通过豆瓣的CSS规范进行讲解: 所有的CSS分为两大类:通用类和业务类.通用的CSS文件,放在如下目录中: 基本样式库 /css/core 通用U ...

  3. 刷题总结——regular words(hdu1502 dp+高精度加法+压位)

    题目: Problem Description Consider words of length 3n over alphabet {A, B, C} . Denote the number of o ...

  4. 关于scarpy的一些说明

    一  scrapy添加代理 1 内置代理:os.environ. 固定格式,不推荐 os.environ['http_proxy'] = "http://root:woshiniba@192 ...

  5. 【CF675E】Trains and Statistic(贪心,DP,线段树优化)

    题意:a[i]表示从第i个车站可以一张票到第[i+1,a[i]]这些车站;p[i][j]表示从第i个车站到第j个车站的最少的票数,现在要求∑dp[i][j](1<=i<=n,i<j& ...

  6. excel 表格lookup 的操作

    这个实现语句如下,(写在2行然后向下拖动)(2007或以上版本): = IF(,ISBLANK($H2),$G2="), "", IF("), IF($H2&g ...

  7. PHP 几个常用的正则表达式

    记录几个PHP中比较常用的正则. , $max_len = 20){ if (empty($username)) { return false; } $match = '/^(?![0-9]+$)[\ ...

  8. python--导入就方便实现你需要的功能(模块)

    模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 简单地说,模块就是一个保存了 ...

  9. Windows Phone 8 与 windows 8 开发技术概览

    目前来说Windows phone 8的开发者 大家都是走战斗在在技术朋友,相信大家在做Windows Phone 8开发的同时也在关注Windows 8,我相信很多开发者一定是在 Windows 8 ...

  10. L1-3. 情人节【求第2个、第14个人的名字,设置计数器并标记一下即可】

    L1-3. 情人节 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家. ...