笔记:使用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. 【bzoj4816】[Sdoi2017]数字表格 莫比乌斯反演

    题目描述 Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生 ...

  2. 用CSS给表格加边框

    很久之前,给表格加边框用的方法是给表格加上背景色,然后把cellspacing="1",再给td设置成另一种颜色,这样间接的加边框颜色. 一直没去细研究,今天发现了一种很简单的加边 ...

  3. poj1734Sightseeing trip

    Sightseeing trip Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6811   Accepted: 2602 ...

  4. 解决 Could not load hsdis-amd64.dll

    win10下想查看JIT编译的汇编源码 结果提示: Could not load hsdis-amd64.dll; library not loadable; PrintAssembly is dis ...

  5. POJ 2893 M × N Puzzle

    逆序对 n 数码问题的扩展 对于一个n * m 的问题来说,结论和 列数 m 奇偶有关 对于 m 是奇数来说 , 两个局面互相可达,当且仅当这两个局面按顺序写成一个数列,这个数列的逆序对数的奇偶性相同 ...

  6. canvas之webgl的浏览器开启方式

    引自百度知道的回答 1.开启方式: 第一种:打开cmd,切换到Chorme的安装目录,敲入chrome.exe --enable -webgl,回车就会打开一个chrome浏览器窗口: 第二种:找到C ...

  7. 浅谈MVP设计模式

    最近公司在做一个医疗项目,使用WinForm界面作为客户端交互界面.在整个客户端解决方案中.使用了MVP模式实现.由于之前没有接触过该设计模式,所以在项目完成到某个阶段时,将使用MVP的体会写在博客里 ...

  8. Nginx没有启动文件、nginx服务不支持chkconfig、nginx无法自启

    Nginx没有启动文件.nginx服务不支持chkconfig.nginx无法自启 问题描述: Nginx安装后,当想要设置Ngixn为开机启动时, 就需要把nginx的启动命令路径放到/etc/rc ...

  9. TStringList的Find,IndexOf和Sort

    procedure TForm1.Button1Click(Sender: TObject); var MyList: TStringList; begin MyList := TStringList ...

  10. LeetCode OJ--Merge Two Sorted Lists

    http://oj.leetcode.com/problems/merge-two-sorted-lists/ 有序链表的归并排序 #include <iostream> using na ...