Python讀取excel三大常用模塊到底誰最快,附上詳細使用代碼

2021-12-11 數據管道

來源於一行數據,作者行哥


之前分享過python調用過ppt和word,作為一家人的excel當然要整整齊齊的安排上

  

相對於excel,已經有人都寫成了一本書。這裡一篇文檔根本寫不下,但是行哥想起來若干年前,在處理數據的時候最大的難題就是導入excel數據,因為後來的數據清洗,提取都可以一步步來做。但是數據導入因為教程不一,文字編碼不一,著實快成為我從入門到放棄的第一塊門檻

所以本文介紹三種強大的python模塊來讀取excel,選用案例是之前分享過的分析2020年12000條python招聘數據,有興趣的可以點擊這裡看一下

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())

其中的describe函數可以統計整體工資情況,告訴行哥你有沒有超過50%

使用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

安裝完成提示 Successfully installed即表示安裝成功。

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))

image5.總結類型xlrd&xlwt&xlutilspandasOpenPyXL讀取支持支持支持寫入支持支持支持修改支持支持支持xls支持支持不支持xlsx高版本支持支持支持大文件不支持支持支持效率快快快功能較弱強大一般遍歷耗時0.35 s2.60 s0.47 s

這裡附上3個模塊的性能對比,從遍歷時間上xlrd模塊最快,從功能強大上我選擇pandas,從數據量上我得選擇mysql、hadoop、spark🐶

往期推薦

相關焦點

  • python中讀取和寫入EXCEL
    xlrd # todo 打開exclexl = xlrd.open_workbook(r'D:\test\CEO.xlsx')#print(xl.read()) # todo 通過索引獲取工作表table = xl.sheets()[0]print(table)
  • 用Python讀取Excel文件指南
    原作者丨Erik Marsja本文將重點闡述用Python如何讀取Excel文件(xlsx),重點是演示使用openpyxl模塊讀取xlsx類型的文件。首先,我們要看一些簡單的示例;然後,我們將學習讀取多個Excel文件。
  • Excel文件另類操作,如何用Python中xlrd模塊獲取電子表格的信息
    前面內容,我們介紹了Python使用openpyxl模塊對Excel文件進行操作的一些案例。喜歡的小夥伴可以關注我,看下往期的內容。今天,我們來詳細了解下Python處理Excel文件的另外一種模塊xlrd模塊。
  • Python神器Pandas讀取excel
    :pandas 是 Python 語言的一個擴展程序庫,主要用於數據分析,提供高性能、易於使用的數據結構和數據分析工具。pandas可結合處理EXCEL非常之方便,平時常用的功能很多比如:批量合併文件夾下的excel文件;按某一欄位批量拆分excel文件;excel與資料庫聯動處理等03案例演示在使用這個庫前,要安裝python,建議安裝python3.8以後的版本穩定,然後確認自己是否已安裝
  • Python數據分析:pandas讀取和寫入數據
    繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • 如何用Python讀取Excel中圖片?
    那麼你知道如何使用Python讀取Excel中的圖片?又如何使用Python直接往Excel中寫入圖片?甚至使用Python製作一個Excel可視化大屏?這裡介紹幾個國內的鏡像,大家可以嘗試其中一個,速度會比單純的pip快10倍不止。
  • n種方式教你用python讀寫excel等數據文件
    下面整理下python有哪些方式可以讀寫數據文件。1. read、readline、readlinesread()  :一次性讀取整個文件內容。推薦使用read(size)方法,size越大運行時間越長readline()  :每次讀取一行內容。
  • n種方式教你用Python讀寫Excel等數據文件
    下面整理下python有哪些方式可以讀寫數據文件。1. read、readline、readlinesread()  :一次性讀取整個文件內容。推薦使用read(size)方法,size越大運行時間越長readline()  :每次讀取一行內容。
  • 如何用Python讀寫Excel文件?最便捷的3種方式
    pandas進行讀寫,下面我主要介紹一下3種方式讀寫的過程,實驗環境win7+python3.6+pycharm5.0,主要步驟如下:為了方便演示,我這裡新建了一個test.xls文件,主要內容如下,用於測試讀excel的代碼:方法一:利用xlrd和xlwt進行excel讀寫,這裡只能是xls類型excel首先,安裝的話,直接輸入命令"
  • 手把手教你使用python的zipfile模塊巧解word批量生成問題
    回復「書籍」即可獲贈Python從入門到進階共10本電子書大家好,我是宿者朽命,微信名是【🌑(這是月亮的背面)】,今天給大家分享使用python的zipfile模塊巧解word批量生成問題,這裡提供兩種方案給大家參考。
  • 使用Python pandas讀取多個Excel工作表
    ,pandas 本文將嘗試使用Python pandas讀取來自同一文件的多個Excel工作表。我們可以通過兩種方式來實現這一點:使用pd.read_excel()方法,並使用可選的參數sheet_name;另一種方法是創建一個pd.ExcelFile對象,然後解析該對象中的數據。 註:本文示例文檔可在知識星球完美Excel社群中下載。
  • 利用Python讀取外部數據文件
    pandas模塊中的read_csv函數進行讀取。三、讀取統計軟體生成的數據文件往往在集成數據源的時候,可能會讓你遇到一種苦惱,那就是你的電腦裡存放了很多統計軟體自帶的或生成的數據集下圖是使用SAS打開的數據集,如果你的電腦中沒有安裝SAS,那你也可以通過Python實現數據的讀取。
  • 如何用Python讀取Excel中圖片?又如何用Python往Excel中寫入圖片?
    那麼你知道如何使用Python讀取Excel中的圖片?又如何使用Python直接往Excel中寫入圖片?甚至使用Python製作一個Excel可視化大屏?這裡介紹幾個國內的鏡像,大家可以嘗試其中一個,速度會比單純的pip快10倍不止。
  • Python讀取CSV和Excel
    CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的欄位序列.特點讀取出的數據一般為字符類型,如果是數字需要人為轉換為數字以行為單位讀取數據列之間以半角逗號或制表符為分隔,一般為半角逗號一般為每行開頭不空格,第一行是屬性列,數據列之間以間隔符為間隔無空格,行之間無空行。
  • 基於python的大數據分析-pandas數據讀取(代碼實戰)
    長按上方二維碼加入千人QQ群基於python的大數據分析實戰學習筆記-Anaconda基於python的大數據分析實戰學習筆記-pandas(數據分析包)基於python的大數據分析實戰學習筆記-pandas之DataFrame我們常見的數據存儲格式無非就是csv、excel、txt以及資料庫等形式
  • python生成excel文件的三種方式
    來源:經授權轉自 AI碼科技(ID:eleven_bmw)作者 :臭榴槤在我們做平常工作中都會遇到操作excel,那麼今天寫一篇,如何通過python操作excel當然python操作excel的庫有很多,比如pandas,xlwt/xlrd,openpyxl等,每個庫都有不同的區別,具體的區別,大家一起來看看吧~xlrd是對於Excel進行讀取,xlrd 操作的是
  • 如何快速學會Python處理數據?(5000字走心總結)
    對於沒有編程經驗的人,Python是一門非常適合入門的程式語言,因為它是高度封裝的,不需要對於底層特別了解,也能夠很好學習使用。python語法非常簡單,代碼可讀性高,對於零基礎的人來說更容易接受和使用。
  • 如何在Visual Studio中創建excel並讀取數據
    和xlrd第三方庫,使用xlwt創建excel文件並寫入數據,使用xlrd讀取excel文件中的數據。導入xlrd和xlwt,配置文件編碼格式3、編寫xlwt創建excel文件,並寫入數據代碼編寫xlwt創建excel文件,並寫入數據代4、保存代碼並運行python文件,查看結果
  • 14-用Python 讀寫 Excel 文件
    和R這樣的分析工具了XlsxWriterxlrd&xlwt[2]OpenPyXL[3]Microsoft Excel API[4]介紹可以創建 Excel 2007 或更高版本的 XLSX 文件即 python-excel,含 xlrd、xlwt 和 xlutils 三大模塊,分別提供讀、寫和其他功能可以讀寫 Excel 2007 XLSX 和 XLSM 文件直接通過 COM
  • 手把手教你用Python讀取Excel
    可以傳入本地文件名或者遠程文件的URL:# 字符串、字節、Excel文件、xlrd.Book實例、路徑對象或者類似文件的對象# 本地相對路徑pd.read_excel('data/data.xlsx') # 注意目錄層級pd.read_excel('data.xls') # 如果文件與代碼文件在同一目錄下# 本地絕對路徑pd.read_excel