久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > Python自動化操作Excel 眾多模塊哪家強?

Python自動化操作Excel 眾多模塊哪家強?

來源:千鋒教育
發(fā)布人:qyf
時間: 2022-09-20 17:33:33 1663666413

  大家可能可能會面臨這個問題:

  1.成堆的科學(xué)實驗數(shù)據(jù)需要導(dǎo)入 Excel 進行分析

  2.成堆的銷售數(shù)據(jù)表格等待統(tǒng)計

  3.成堆的商品數(shù)據(jù)等待分析

  作為人生苦短的 Python 程序員,該如何優(yōu)雅地操作 Excel?其實Python提供的操作Excel的庫有7個之多,到底哪個更好使用更加方便呢?首先讓我們來整體把握下不同庫的特點:

  1.xlrd是一個從Excel文件讀取數(shù)據(jù)和格式化信息的庫,支持.xls以及.xlsx文件。官方文檔:http://xlrd.readthedocs.io/en/latest/

  2.xlwt是一個用于將數(shù)據(jù)和格式化信息寫入舊Excel文件的庫(如.xls)。官方文檔:https://xlwt.readthedocs.io/en/latest/

  3.xlutils是一個處理Excel文件的庫,依賴于xlrd和xlwt。它僅支持.xls文件的操作。 官方文檔:http://xlutils.readthedocs.io/en/latest/

  4.xlwings 簡單強大,使用方便,可替代VBA。xlwings可以支持.xls讀,支持.xlsx文件讀寫。官方文檔:http://docs.xlwings.org/en/stable/index.html

  5.XlsxWriter 是一個用來寫 .xlsx 文件格式的模塊,但不能用來讀取和修改 Excel 文件。官方文檔:https://xlsxwriter.readthedocs.io/

  6.openpyxl是一個用于讀取和編寫Excel 2010 xlsx/xlsm/xltx/xltm文件的庫。官方文檔:https://openpyxl.readthedocs.io/en/stable/

  7.pandas是一個進行數(shù)據(jù)處理和分析的強大模塊,有時也可以用來自動化處理Excel,官方文檔:http://pandas.pydata.org/

  另外還有win32com,通過名字大家就知道離不開windows系統(tǒng),該庫存在于pywin32中,是一個讀寫和處理Excel文件的庫。但是我的電腦是Mac,就不做展開了。 官方文檔:http://pythonexcels.com/python-excel-mini-cookbook/

  DataNitro呢?嚴格來說它是一個Excel 的插件,安裝也需單獨到官網(wǎng)下載。也是僅支持windows系統(tǒng)。 官方文檔:https://datanitro.com/

  具體內(nèi)容大家也可以參看:http://www.python-excel.org

  環(huán)境配置

Picture

  安裝

  7個模塊均為非標準庫,因此都需要在命令行中 pip/pip3進行安裝:

  pip/pip3 install xlrd

  pip/pip3 install xlwt

  pip/pip3 install xlutils

  pip/pip3 install xlwings

  pip/pip3 install XlsxWriter

  pip/pip3 install openpyxl

  pip/pip3 install pandas

  提示:

  • xlutils 僅支持 xls 文件,即2003以下版本;

  • xlwings 安裝成功后,如果運行提示報錯“ImportError: no module named win32api”,請再安裝 pypiwin32 或者 pywin32 包;

  模塊導(dǎo)入

  模塊的導(dǎo)入跟以往導(dǎo)入其他模塊一樣,使用import進行導(dǎo)入,如果名字比較長還可以使用as起個別名。

  import xlrd

  import xlwt

  import xlwings as xw

  import xlsxwriter

  import openpyxl

  import pandas as pd

  xlutils 模塊是 xlrd和 xlwt之間的橋梁,最核心的作用是拷貝一份通過 xlrd 讀取到內(nèi)存中的 .xls 對象,然后再拷貝對象上通過 xlwt 修改 .xls 表格的內(nèi)容。xlutils 可以將 xlrd 的 Book 對象復(fù)制轉(zhuǎn)換為xlwt 的Workbook 對象。具體使用時通常導(dǎo)入的是模塊中的copy子模塊:

  import xlutils.copy

  文檔操作

  由于設(shè)計模式的不同,導(dǎo)致基本的新建文件、修改文件、保存文件等功能在不同的庫中存在著一定差異,比如xlsxwriter并不支持打開或修改現(xiàn)有文件,xlwings不支持對新建文件的命名等等,但是分析發(fā)現(xiàn)xlwings和openpyxl是對excel操作支持最多的兩個庫。

  特別要說明一下xlutils庫,xlrd、xlwt、xlutils 各自的功能都有局限性,但三者互為補充,覆蓋了Excel文件尤其是 .xls 文件的操作。xlwt 可以生成 .xls 文件,xlrd 可以讀取已經(jīng)存在的 .xls文件,xlutils 連接 xlrd 和 xlwt 兩個模塊,使用戶可以同時讀寫一個 .xls 文件。簡單來說,xlrd 負責讀、xlwt 負責寫、xlutils 負責提供輔助和銜接

Picture(1)

  性能對比

  對幾個庫做了最基本的寫入和讀取測試,分別使用不同庫進行添加及讀取 5000行 * 800列 數(shù)據(jù)操作,得到所用時間,重復(fù)操作取平均值。另外在不同的電腦配置,不同的環(huán)境下結(jié)果肯定會有出入,數(shù)據(jù)僅供參考。

Picture(2)

  openpyxl雖然操作Excel的功能強大,但讀寫性能過于糟糕,尤其是寫大表時,會占用大量內(nèi)存,開啟readonly和writeonly模式后對其性能有大幅提升,尤其是對讀的性能提升很大,使其幾乎不耗時。

  pandas把Excel當作數(shù)據(jù)讀寫的容器,為其強大的數(shù)據(jù)分析服務(wù),因此讀寫性能表現(xiàn)中規(guī)中矩,但其對Excel文件兼容性是最好的,支持讀寫.xls,.xlsx文件,且支持只讀表中單一工作頁。

  同樣支持此功能的庫還有xlrd,但xlrd只支持讀,并不支持寫,且性能不突出,需要配合xlutils進行Excel操作。

  xlsxwriter功能單一,一般用來創(chuàng)建.xlsx文件,寫入性能中庸。

  綜合考慮,xlwings的表現(xiàn)最佳,正如其名,xlwings——Make Excel Fly!

  通過以上分析,相信大家對幾個庫都有了簡單的了解。你可根據(jù)自己的需求和生產(chǎn)環(huán)境,選擇合適的 Python-Excel 模塊

  附上一部分常用代碼:

  xlwings基本代碼

  import xlwings as xw

  #連接到excel

  workbook = xw.Book('你的excel文件的路徑')#連接excel文件

  #連接到指定單元格

  data_range = workbook.sheets('Sheet1').range('A1')

  #寫入數(shù)據(jù)

  data_range.value = ['a','b','c']

  #保存

  workbook.save()

  xlsxwriter基本代碼

  import xlsxwriter as xw

  #新建excel

  workbook = xw.Workbook('你的excel文件的路徑')

  #新建工作薄

  worksheet = workbook.add_worksheet()

  #寫入數(shù)據(jù)

  worksheet.wirte('A1','a')

  #關(guān)閉保存

  workbook.close()

  xlutils基本代碼

  import xlrd #讀取數(shù)據(jù)

  import xlwt #寫入數(shù)據(jù)

  import xlutils.copy #操作excel

  # 通過xlrd讀取數(shù)據(jù)

  #打開excel文件

  workbook = xlrd.open_workbook('你的excel文件的路徑')

  #獲取表單

  worksheet = workbook.sheet_by_index(0)

  #讀取數(shù)據(jù)

  data = worksheet.cell_value(0,0)

  # 通過xlwt寫入數(shù)據(jù)

  #新建excel

  wb = xlwt.Workbook()

  #添加工作薄

  sh = wb.add_sheet('Sheet1')

  #寫入數(shù)據(jù)

  sh.write(0,0,'abc')

  #保存文件

  wb.save('myexcel.xls')

  #打開excel文件

  book = xlrd.open_workbook('你的excel文件的路徑')

  #復(fù)制一份

  new_book = copy(book)

  #拿到工作薄

  worksheet = new_book.getsheet(0)

  #寫入數(shù)據(jù)

  worksheet.write(0,0,'mydata')

  #保存

  new_book.save()

  openpyxl基本代碼

  import openpyxl

  # 新建文件

  workbook = openpyxl.Workbook()

  # 寫入文件

  sheet = workbook.activesheet['A1']='A1'

  # 保存文件

  workbook.save('你的excel保存路徑')

  本文目的并不是要評出一個最好的庫,僅是從不同角度對不同庫進行對比,希望能夠讓大家了解各個庫所擅長的工作。

  只有充分了解不同工具的特點,才能夠在不同的場景下靈活運用不同的方法來高效解決問題!

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么是域控制器?

一、域控制器的定義域控制器是指在Windows Server操作系統(tǒng)中部署Active Directory服務(wù)的服務(wù)器。Active Directory是微軟公司開發(fā)的目錄服務(wù),用...詳情>>

2023-10-15 00:10:28
深度學(xué)習(xí)模型權(quán)重h5、weights、ckpt、pth有什么區(qū)別?

1.來源框架不同h5格式通常用于Keras和TensorFlow框架,weights用于Darknet框架,ckpt是TensorFlow框架的一種格式,而pth則主要用于PyTorch框架...詳情>>

2023-10-15 00:05:17
大數(shù)據(jù)測試工程師需要具備哪些技能?

一、理解大數(shù)據(jù)概念大數(shù)據(jù)測試工程師需要理解大數(shù)據(jù)的基本概念和原理,如分布式存儲、MapReduce、實時計算等。他們還需要了解如何處理大規(guī)模的...詳情>>

2023-10-14 23:43:03
為什么SpringBoot的 jar 可以直接運行?

一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項目的類文件、資源文件以及依賴庫等...詳情>>

2023-10-14 23:01:49
站群服務(wù)器是什么?

站群服務(wù)器的含義與用途站群服務(wù)器主要用于支持站群,即由一組相互鏈接的網(wǎng)站組成的群體。這些網(wǎng)站通常由同一組織或個人擁有,并且經(jīng)常會互相鏈...詳情>>

2023-10-14 22:46:12
快速通道