使用Python处理Excel文件的一些代码示例
笔记:使用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下
相关库文档:
使用Python处理Excel文件的一些代码示例的更多相关文章
- 使用Python处理CSV文件的一些代码示例
笔记:使用Python处理CSV文件的一些代码示例,来自于<Python数据分析基础>一书,有删改 # 读写CSV文件,不使用CSV模块,仅使用基础Python # 20181110 wa ...
- [转]用Python读写Excel文件
[转]用Python读写Excel文件 转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...
- python读写Excel文件的函数--使用xlrd/xlwt
python中读取Excel的模块或者说工具有很多,如以下几种: Packages 文档下载 说明 openpyxl Download | Documentation | Bitbucket The ...
- python之路-随笔 python处理excel文件
小罗问我怎么从excel中读取数据,然后我百了一番,做下记录 以下代码来源于:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html ...
- Python处理Excel文件
因为工作需求,需要审核一部分query内容是否有效,query储存在Excel中,文本内容为页面的Title,而页面的URL以HyperLink的格式关联到每个Cell. 于是本能的想到用Python ...
- 记录:python读取excel文件
由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...
- Python解析excel文件并存入sqlite数据库
最近由于工作上的需求 需要使用Python解析excel文件并存入sqlite 就此做个总结 功能:1.数据库设计 建立数据库2.Python解析excel文件3.Python读取文件名并解析4.将解 ...
- Python读写EXCEL文件常用方法大全
前言 python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式. 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: 用pa ...
- php读取excel文件的实例代码
php读取excel文件的实例代码. 代码: <?php /** * php读取excel文件 * by www.jbxue.com */ $this->loadexcel();//半酣p ...
随机推荐
- 性能学习之六---socket接口测试
socket协议较底层,所以是一个万能协议.socket发的是数据包,所以较难看懂. 下面我们来讲解socket接口测试. 大致思路为:新建sever端和client端---建立连接---发送数据 一 ...
- 如何查找Windows上安装的DB2的端口号Port
1.db2com打开控制台 2.db2 get dbm cfg 可以通过db2 get dbm cfg,查询数据库管理器配置参数,就可以查到端口号或端口名. 示例: $ db2 get dbm cfg ...
- Mysql多列索引实践
在网上看到: 定义:最左前缀原则指的的是在sql where 子句中一些条件或表达式中出现的列的顺序要保持和多索引的一致或以多列索引顺序出现,只要 出现非顺序出现.断层都无法利用到多列索引. 该博文有 ...
- STL之set的用法
1.关于set 首先,set是关联容器,set作为一个容器是用来存储同一种数据类型的数据结构,基本功能与数组相似.不同的是,在set中每个元素的值都是唯一的.而且系统能够根据元素的值自动进行排序.但是 ...
- DataTable.AcceptChanges的理解
OleDbDataAdapter 怎么更新不了数据库? String tbName = ds.Tables[0].TableName; String te ...
- Django 利用 Pagination 分页
Django自身提供了一些类来实现管理分页,数据被分在不同的页面中,并带有“上一页/下一页”标签.这个类叫做Pagination,其定义位于 django/core/paginator.py 中. 一 ...
- Careercup | Chapter 4
二叉查换树,左孩子小于等于根,右孩子大于根. 完全二叉树,除最后一层外,每一层上的节点数均达到最大值:在最后一层上只缺少右边的若干结点. complete binary tree 满二叉树,完美二叉树 ...
- JD静态网页
1.制作导航栏 ul>li*n>a 2.制作竖线 a.利用border b.利用 | c.利用矩形,宽度设为1,设置背景色,padding = 0 3.制作下三角 (1)◇ (2)两个盒 ...
- Excel文件处理Demo
1.BLL业务逻辑代码 /// <summary> /// 处理“店铺竞品销售数据”导入文件 /// </summary> /// <param name="f ...
- Linux 网卡驱动学习(二)(网络驱动接口小结)
[摘要]前文我们分析了一个虚拟硬件的网络驱动例子,从中我们看到了网络设备的一些接口,其实网络设备驱动和块设备驱动的功能比较类似,都是发送和接收数据包(数据请求).当然它们实际是有很多不同的. 1.引言 ...