python操作excel三⼤模块对⽐(xlrd、openpyxl、pandas)
1.pandas
matplotlib、numpy、pandas是⼊⾏数据分析的三个必须掌握的基础模块,这⾥介绍⼀下⽤pandas如何导⼊excel⽂件。安装⽐较简单,直接⽤ pip ⼯具安装三个库即可,安装命令如下:
$ pip3 install pandas
安装完成提⽰ Successfully installed即表⽰安装成功。
# 1.导⼊pandas模块
import pandas as pd
# 2.把Excel⽂件中的数据读⼊pandas
df = pd.read_excel('Python招聘数据(全).xlsx')
print(df)
# 3.读取excel的某⼀个sheet
df = pd.read_excel('Python招聘数据(全).xlsx', sheet_name='Sheet1')
print(df)
# 4.获取列标题
lumns)
# 5.获取列⾏标题
print(df.index)
# 6.制定打印某⼀列
print(df["⼯资⽔平"])
# 7.描述数据
print(df.describe())
使⽤for循环遍历整个excel⽂件,我们可以看到12000⾏数据总耗时达到2.6s
import time
t1 = time.time()
for indexs in df.index:
print(df.loc[indexs].values[0:-1])
t2=time.time()
print("使⽤pandas⼯具包遍历12000⾏数据耗时:%.2f 秒"%(t2-t1))
2.openpyxl
⼩五说这个最好⽤的python 操作 excel 表格库,下⾯可以看到openpyxl的读取⽅法。安装⽐较简单,直接⽤ pip ⼯具安装三个库即可,安装命令如下:
$ pip3 install openpyxl
from openpyxl import load_workbook
# 1.打开 Excel 表格并获取表格名称
workbook = load_workbook(filename="Python招聘数据(全).xlsx")
print(workbook.sheetnames)
# 2.通过 sheet 名称获取表格
sheet = workbook["Sheet1"]
print(sheet)
# 3.获取表格的尺⼨⼤⼩(⼏⾏⼏列数据) 这⾥所说的尺⼨⼤⼩,指的是 excel 表格中的数据有⼏⾏⼏列,针对的是不同的 sheet ⽽⾔。
print(sheet.dimensions)
# 4.获取表格内某个格⼦的数据
# 1 sheet["A1"]⽅式
cell1 = sheet["A1"]
cell2 = sheet["C11"]
print(cell1.value, cell2.value)
"""
workbook.active 打开激活的表格; sheet["A1"] 获取 A1 格⼦的数据; cell.value 获取格⼦中的值;
"""
# ll(row=, column=)⽅式
cell1 = ll(row = 1,column = 1)
cell2 = ll(row = 11,column = 3)
print(cell1.value, cell2.value)
# 5. 获取⼀系列格⼦
# 获取 A1:C2 区域的值
cell = sheet["A1:C2"]
print(cell)
for i in cell:
for j in i:
print(j.value)
通过openpyxl库操作excel,使⽤for循环迭代打印12000⾏数据仅需要0.47 s
import time
t1 = time.time()
for i in sheet.iter_rows(min_row=1, max_row=12256, min_col=1, max_col=10):
for j in i:
print(j.value)
t2=time.time()
print("使⽤openpyxl⼯具包遍历12000⾏数据耗时:%.2f 秒"%(t2-t1))
python怎么读入excel3.xlrd
xlrd是xlrd&xlwt&xlutils三个库中的⼀个:
xlrd:⽤于读取 Excel ⽂件;xlwt:⽤于写⼊ Excel ⽂件;xlutils:⽤于操作 Excel ⽂件的实⽤⼯具,⽐如复制、分割、筛选等;安装⽐较简单,直接⽤ pip ⼯具安装三个库即可,安装命令如下:
$ pip3 install xlrd xlwt xlutils
安装完成提⽰ Successfully installed xlrd-1.2.0 xlutils-2.0.0 xlwt-1.3.0 即表⽰安装成功。
接下来我们就从写⼊ Excel 开始,话不多说直接看代码如下:
# 导⼊ xlrd 库
import xlrd
# 打开刚才我们写⼊的 test_w.xls ⽂件
wb = xlrd.open_workbook("Python招聘数据(全).xlsx")
# 获取并打印 sheet 数量
print( "sheet 数量:", wb.nsheets)
# 获取并打印 sheet 名称
print( "sheet 名称:", wb.sheet_names())
# 根据 sheet 索引获取内容
sh1 = wb.sheet_by_index(0)
# 也可根据 sheet 名称获取内容
# sh = wb.sheet_by_name('成绩')
# 获取并打印该 sheet ⾏数和列数
print( u"sheet %s 共 %d ⾏ %d 列" % (sh1.name, ws, ls))
# 获取并打印某个单元格的值
print( "第⼀⾏第⼆列的值为:", ll_value(0, 1))
# 获取整⾏或整列的值
rows = w_values(0) # 获取第⼀⾏内容
cols = l_values(1) # 获取第⼆列内容
# 打印获取的⾏列值
print( "第⼀⾏的值为:", rows)
print( "第⼆列的值为:", cols)
# 获取单元格内容的数据类型
print( "第⼆⾏第⼀列的值类型为:", ll(1, 0).ctype)
通过xlrd库操作excel,使⽤for循环迭代打印12000⾏数据仅需要0.35 s
# # 遍历所有表单内容
import time
t1 = time.time()
for sh in wb.sheets():
for r in ws):
# 输出指定⾏
print( sh.row(r))
t2=time.time()
print("使⽤xlrd⼯具包遍历12000⾏数据耗时:%.2f 秒"%(t2-t1)
4.总结
类型xlrd&xlwt&xlutils pandas OpenPyXL
读取⽀持⽀持⽀持
写⼊⽀持⽀持⽀持
修改⽀持⽀持⽀持
xls⽀持⽀持不⽀持
xlsx⾼版本⽀持⽀持⽀持
⼤⽂件不⽀持⽀持⽀持
效率快快快
功能较弱强⼤⼀般
遍历耗时0.35 s 2.60 s0.47 s
这⾥附上3个模块的性能对⽐,从遍历时间上xlrd模块最快,从功能强⼤上我选择pandas,从数据量上我得选择mysql、hadoop、spark
版权声明:本⽂为CSDN博主「⼀⾏玩python」的原创⽂章,遵循CC 4.0 BY-SA版权协议,转载请附上原⽂出处链接及本声明。原⽂链接:blog.csdn/qq_42554007/article/details/107096842
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论