python操作excel三大模块对比(xlrd、openpyxl、pandas)

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.获取列标题

print(df.columns)

# 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 获取格子中的值;

"""

# 4.2sheet.cell(row=, column=)方式

cell1 = sheet.cell(row = 1,column = 1)

cell2 = sheet.cell(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))

3.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, sh1.nrows, sh1.ncols))

# 获取并打印某个单元格的值

print( "第一行第二列的值为:", sh1.cell_value(0, 1))

# 获取整行或整列的值

rows = sh1.row_values(0) # 获取第一行内容

cols = sh1.col_values(1) # 获取第二列内容

# 打印获取的行列值

print( "第一行的值为:", rows)

print( "第二列的值为:", cols)

# 获取单元格内容的数据类型

print( "第二行第一列的值类型为:", sh1.cell(1, 0).ctype)

通过xlrd库操作excel,使用for循环迭代打印12000行数据仅需要0.35 s

# # 遍历所有表单内容

import time

t1 = time.time()

for sh in wb.sheets():

for r in range(sh.nrows):

# 输出指定行

print( sh.row(r))

t2=time.time()

print("使用xlrd工具包遍历12000行数据耗时:%.2f 秒"%(t2-t1)

4.总结

类型xlrd&xlwt&xlutilspandasOpenPyXL读取支持支持支持写入支持支持支持修改支持支持支持xls支持支持不支持xlsx高版本支持支持支持大文件不支持支持支持效率快快快功能较弱强大一般遍历耗时0.35 s2.60 s0.47 s这里附上3个模块的性能对比,从遍历时间上xlrd模块最快,从功能强大上我选择pandas,从数据量上我得选择mysql、hadoop、spark???

版权声明:本文为CSDN博主「一行玩python」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_42554007/article/details/107096842

你可能也喜欢

win7怎么升级win10的详细步骤教程[多图]
月光侠分期放款中多久到账?
Microsoft 365安卓

月光侠分期放款中多久到账?

07-19 4056
图片报:10月份博阿滕需为家暴案出庭;检方曾要求禁赛一年半