chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何把Python和Excel兩大數(shù)據(jù)工具進(jìn)行集成

數(shù)據(jù)分析與開(kāi)發(fā) ? 來(lái)源:Python大數(shù)據(jù)分析 ? 作者:朱衛(wèi)軍 ? 2021-10-12 09:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這次我們會(huì)介紹如何使用xlwings將Python和Excel兩大數(shù)據(jù)工具進(jìn)行集成,更便捷地處理日常工作。

說(shuō)起Excel,那絕對(duì)是數(shù)據(jù)處理領(lǐng)域王者般的存在,盡管已經(jīng)誕生三十多年了,現(xiàn)在全球仍有7.5億忠實(shí)用戶,而作為網(wǎng)紅語(yǔ)言的Python,也僅僅只有700萬(wàn)的開(kāi)發(fā)人員。Excel是全世界最流行的編程語(yǔ)言。對(duì),你沒(méi)看錯(cuò),自從微軟引入了LAMBDA定義函數(shù)后,Excel已經(jīng)可以實(shí)現(xiàn)編程語(yǔ)言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣。雖然Excel對(duì)小規(guī)模數(shù)據(jù)場(chǎng)景來(lái)說(shuō)是剛需利器,但它面對(duì)大數(shù)據(jù)時(shí)就會(huì)有些力不從心。我們知道一張Excel表最多能顯示1048576行和16384列,處理一張幾十萬(wàn)行的表可能就會(huì)有些卡頓,當(dāng)然你可以使用VBA進(jìn)行數(shù)據(jù)處理,也可以使用Python來(lái)操作Excel。這就是本文要講到的主題,Python的第三方庫(kù)-xlwings,它作為Python和Excel的交互工具,讓你可以輕松地通過(guò)VBA來(lái)調(diào)用Python腳本,實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)分析。

一、為什么將Python與Excel VBA集成?

VBA作為Excel內(nèi)置的宏語(yǔ)言,幾乎可以做任何事情,包括自動(dòng)化、數(shù)據(jù)處理、分析建模等等,那為什么要用Python來(lái)集成Excel VBA呢?主要有以下三點(diǎn)理由:

1.  如果你對(duì)VBA不算精通,你可以直接使用Python編寫分析函數(shù)用于Excel運(yùn)算,而無(wú)需使用VBA;
2.  Python相比VBA運(yùn)行速度更快,且代碼編寫更簡(jiǎn)潔靈活;
3.  Python中有眾多優(yōu)秀的第三方庫(kù),隨用隨取,可以節(jié)省大量代碼時(shí)間;

對(duì)于Python愛(ài)好者來(lái)說(shuō),pandas、numpy等數(shù)據(jù)科學(xué)庫(kù)用起來(lái)可能已經(jīng)非常熟悉,如果能將它們用于Excel數(shù)據(jù)分析中,那將是如虎添翼。

二、為什么使用xlwings?

Python中有很多庫(kù)可以操作Excel,像xlsxwriter、openpyxl、pandas、xlwings等。但相比其他庫(kù),xlwings性能綜合來(lái)看幾乎是最優(yōu)秀的,而且xlwings可以實(shí)現(xiàn)通過(guò)Excel宏調(diào)用Python代碼。

安裝xlwings非常簡(jiǎn)單,在命令行通過(guò)pip實(shí)現(xiàn)快速安裝:

pipinstallxlwings

安裝好xlwings后,接下來(lái)需要安裝xlwings的 Excel集成插件,安裝之前需要關(guān)閉所有 Excel 應(yīng)用,不然會(huì)報(bào)錯(cuò)。同樣在命令行輸入以下命令:

xlwingsaddininstall

出現(xiàn)下面提示代表集成插件安裝成功。4fbd771a-26b6-11ec-82a8-dac502259ad0.png
xlwings和插件都安裝好后,這時(shí)候打開(kāi)Excel,會(huì)發(fā)現(xiàn)工具欄出現(xiàn)一個(gè)xlwings的菜單框,代表xlwings插件安裝成功,它起到一個(gè)橋梁的作用,為VBA調(diào)用Python腳本牽線搭橋。

另外,如果你的菜單欄還沒(méi)有顯示“開(kāi)發(fā)工具”,那需要把“開(kāi)發(fā)工具”添加到功能區(qū),因?yàn)槲覀円玫胶辍2襟E很簡(jiǎn)單:1、在"文件"選項(xiàng)卡上,轉(zhuǎn)到"自定義>選項(xiàng)"。2、在“自定義功能區(qū)”和“主選項(xiàng)卡”下,選中“開(kāi)發(fā)工具”復(fù)選框。

菜單欄顯示開(kāi)發(fā)工具,就可以開(kāi)始使用宏。如果你還不知道什么是宏,可以暫且把它理解成實(shí)現(xiàn)自動(dòng)化及批量處理的工具。到這一步,前期的準(zhǔn)備工作就完成了,接下來(lái)就是實(shí)戰(zhàn)!

三、玩轉(zhuǎn)xlwings

要想在excel中調(diào)用python腳本,需要寫VBA程序來(lái)實(shí)現(xiàn),但對(duì)于不懂VBA的小伙伴來(lái)說(shuō)就是個(gè)麻煩事。但xlwings解決了這個(gè)問(wèn)題,不需要你寫VBA代碼就能直接在excel中調(diào)用python腳本,并將結(jié)果輸出到excel表中。xlwings會(huì)幫助你創(chuàng)建.xlsm.py兩個(gè)文件,在.py文件里寫python代碼,在.xlsm文件里點(diǎn)擊執(zhí)行,就完成了excel與python的交互。怎么創(chuàng)建這兩個(gè)文件呢?非常簡(jiǎn)單,直接在命令行輸入以下代碼即可:

xlwingsquickstartProjectName

這里的ProjectName可以自定義,是創(chuàng)建后文件的名字。

如果你想把文件創(chuàng)建到指定文件夾里,需要提前將命令行導(dǎo)航到指定目錄。創(chuàng)建好后,在指定文件夾里會(huì)出現(xiàn)兩個(gè)文件,就是之前說(shuō)的.xlsm.py文件。

我們打開(kāi).xlsm文件,這是一個(gè)excel宏文件,xlwings已經(jīng)提前幫你寫好了調(diào)用Python的VBA代碼。按快捷鍵Alt + F11,就能調(diào)出VBA編輯器。

SubSampleCall()
mymodule=Left(ThisWorkbook.Name,(InStrRev(ThisWorkbook.Name,".",-1,vbTextCompare)-1))
RunPython"import"&mymodule&";"&mymodule&".main()"
EndSub

里面這串代碼主要執(zhí)行兩個(gè)步驟:
1、在.xlsm文件相同位置查找相同名稱的.py文件2、調(diào)用.py腳本里的main()函數(shù)我們先來(lái)看一個(gè)簡(jiǎn)單的例子,自動(dòng)在excel表里輸入['a','b','c','d','e']第一步:我們把.py文件里的代碼改成以下形式。

importxlwingsasxw
importpandasaspd


defmain():
wb=xw.Book.caller()
values=['a','b','c','d','e']
wb.sheets[0].range('A1').value=values


@xw.func
defhello(name):
returnf"Hello{name}!"


if__name__=="__main__":
xw.Book("PythonExcelTest.xlsm").set_mock_caller()
main()

然后在.xlsm文件sheet1中創(chuàng)建一個(gè)按鈕,并設(shè)置默認(rèn)的宏,變成一個(gè)觸發(fā)按鈕。設(shè)置好觸發(fā)按鈕后,我們直接點(diǎn)擊它,就會(huì)發(fā)現(xiàn)第一行出現(xiàn)了['a','b','c','d','e']

同樣的,我們可以把鳶尾花數(shù)據(jù)集自動(dòng)導(dǎo)入到excel中,只需要在.py文件里改動(dòng)代碼即可,代碼如下:

importxlwingsasxw
importpandasaspd

defmain():
wb=xw.Book.caller()
df=pd.read_csv(r"E:\test\PythonExcelTest\iris.csv")
df['total_length']=df['sepal_length']+df['petal_length']
wb.sheets[0].range('A1').value=df


@xw.func
defhello(name):
returnf"Hello{name}!"


if__name__=="__main__":
xw.Book("PythonExcelTest.xlsm").set_mock_caller()
main()

好了,這就是在excel中調(diào)用Python腳本的全過(guò)程,你可以試試其他有趣的玩法,比如實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法、文本清洗、數(shù)據(jù)匹配、自動(dòng)化報(bào)告等等。Excel+Python,簡(jiǎn)直法力無(wú)邊。

責(zé)任編輯:haq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Excel
    +關(guān)注

    關(guān)注

    4

    文章

    230

    瀏覽量

    57558
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4858

    瀏覽量

    89598

原文標(biāo)題:如何在 Excel 中調(diào)用 Python 腳本,實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化處理

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    labview如何實(shí)現(xiàn)數(shù)據(jù)的采集與實(shí)時(shí)預(yù)測(cè)

    現(xiàn)有以下問(wèn)題:labview可以實(shí)現(xiàn)數(shù)據(jù)的采集以及調(diào)用python代碼,但如何將這項(xiàng)功能集成在一個(gè)VI文件里,從而實(shí)現(xiàn)數(shù)據(jù)的采集與實(shí)時(shí)預(yù)測(cè)
    發(fā)表于 12-03 21:13

    如何使用協(xié)議分析儀進(jìn)行數(shù)據(jù)分析與可視化

    分析與可視化需結(jié)合工具功能與業(yè)務(wù)場(chǎng)景: 快速診斷:依賴內(nèi)置統(tǒng)計(jì)和IO Graph。 深度分析:導(dǎo)出數(shù)據(jù)Python/R進(jìn)行統(tǒng)計(jì)建模。 長(zhǎng)期監(jiān)控:
    發(fā)表于 07-16 14:16

    西門子EDA產(chǎn)品組合新增兩大解決方案

    西門子數(shù)字化工業(yè)軟件日前宣布為其電子設(shè)計(jì)自動(dòng)化 (EDA) 產(chǎn)品組合新增兩大解決方案,助力半導(dǎo)體設(shè)計(jì)團(tuán)隊(duì)攻克 2.5D/3D 集成電路 (IC) 設(shè)計(jì)與制造的復(fù)雜挑戰(zhàn)。
    的頭像 發(fā)表于 07-14 16:43 ?2953次閱讀

    DevEco Studio AI輔助開(kāi)發(fā)工具兩大升級(jí)功能 鴻蒙應(yīng)用開(kāi)發(fā)效率再提升

    ) 近似最近鄰:提高大規(guī)模數(shù)據(jù)集下的檢索效率。 (3) 檢索模型:用于高效檢索相關(guān)文檔。 2、 可控生成過(guò)程:將檢索結(jié)果作為生成模型的輸入,引導(dǎo)模型僅基于已驗(yàn)證內(nèi)容進(jìn)行回答,大幅降低“虛構(gòu)答案”的概率
    發(fā)表于 04-18 14:43

    python入門圣經(jīng)-高清電子書(建議下載)

    和Pygal 等強(qiáng)大的Python 庫(kù)和工具介紹,以及列表、字典、if 語(yǔ)句、類、文件與異常、代碼測(cè)試等內(nèi)容; 第二部分將理論付諸實(shí)踐,講解如何開(kāi)發(fā)三個(gè)項(xiàng)目,包括簡(jiǎn)單的Python 2D 游戲開(kāi)發(fā)如何利用
    發(fā)表于 04-10 16:53

    大數(shù)據(jù)與云計(jì)算是干嘛的?

    大數(shù)據(jù)與云計(jì)算是支撐現(xiàn)代數(shù)字化技術(shù)的兩大核心。大數(shù)據(jù)專注于海量數(shù)據(jù)的采集、存儲(chǔ)、分析與價(jià)值挖掘;云計(jì)算通過(guò)虛擬化資源池提供彈性計(jì)算、存儲(chǔ)及服務(wù)能力。
    的頭像 發(fā)表于 02-20 14:48 ?1273次閱讀

    Spire.Cloud.Excel云端Excel文檔處理SDK

    Spire.Cloud.Excel 是一款專業(yè)的云端 Excel 文檔處理 SDK,開(kāi)發(fā)人員可調(diào)用 SDK 在云端創(chuàng)建、讀取、編輯、轉(zhuǎn)換、及保存 Excel 文檔。作為一款完全獨(dú)立的 Office
    的頭像 發(fā)表于 02-13 11:03 ?791次閱讀
    Spire.Cloud.<b class='flag-5'>Excel</b>云端<b class='flag-5'>Excel</b>文檔處理SDK

    OSS Nokalva:適用于Python的OSS NAS工具

    執(zhí)行以下任務(wù):編寫軟件來(lái)創(chuàng)建、處理、調(diào)試和測(cè)試 NAS 消息。在處理 3GPP 版本中的更改時(shí),此任務(wù)特別耗時(shí)且容易出錯(cuò)?,F(xiàn)在客戶可以專注于他們的核心業(yè)務(wù)。 用于 Python 的 OSS NAS 工具
    的頭像 發(fā)表于 02-09 09:16 ?779次閱讀
    OSS Nokalva:適用于<b class='flag-5'>Python</b>的OSS NAS<b class='flag-5'>工具</b>

    使用插件將Excel連接到MySQL/MariaDB

    處理 MySQL 數(shù)據(jù),進(jìn)行數(shù)據(jù)清理和重復(fù)數(shù)據(jù)刪除。 直接從 Excel 連接到 MySQL 要將 Excel 連接到 MySQL,您只需指
    的頭像 發(fā)表于 01-20 12:38 ?1140次閱讀
    使用插件將<b class='flag-5'>Excel</b>連接到MySQL/MariaDB

    七款經(jīng)久不衰的數(shù)據(jù)可視化工具!

    ,Power BI 是一款性價(jià)比高的商業(yè)智能工具,尤其適合企業(yè)用戶。它能夠與微軟的其他產(chǎn)品,如Excel、SharePoint等無(wú)縫集成,方便數(shù)據(jù)分析和報(bào)告生成。它的缺點(diǎn)是,功能強(qiáng)大的
    發(fā)表于 01-19 15:24

    適用于Oracle的Devart Excel插件:輕松管理數(shù)據(jù)

    工作簿中的數(shù)據(jù),編輯這些數(shù)據(jù)并將其保存回 Oracle。它使您能夠像使用 Excel 工作表一樣處理 Oracle 數(shù)據(jù),可以輕松進(jìn)行數(shù)據(jù)
    的頭像 發(fā)表于 01-14 11:11 ?946次閱讀
    適用于Oracle的Devart <b class='flag-5'>Excel</b>插件:輕松管理<b class='flag-5'>數(shù)據(jù)</b>

    如何兩個(gè)數(shù)據(jù)返回給調(diào)用函數(shù)

    函數(shù)的處理結(jié)果包含兩個(gè)數(shù)據(jù),如何兩個(gè)數(shù)據(jù)返回給調(diào)用函數(shù)? 第一種,兩個(gè)數(shù)據(jù)封裝成一個(gè)結(jié)構(gòu)體,函數(shù)返回結(jié)構(gòu)體。 調(diào)用函數(shù)的地方同樣用結(jié)構(gòu)體
    的頭像 發(fā)表于 01-08 10:15 ?682次閱讀

    Devart Excel的附加組件

    Excel 的全部功能用于超過(guò) 25 種云應(yīng)用程序和數(shù)據(jù)庫(kù)。 - 將 Microsoft Excel 連接到任何所需數(shù)據(jù)源 - 同時(shí)處理多個(gè)數(shù)據(jù)
    的頭像 發(fā)表于 01-07 11:40 ?772次閱讀

    ODX診斷數(shù)據(jù)庫(kù)轉(zhuǎn)換工具 - DDC

    INTEWORK-DDC (Diagnostic Database Convertor) 是將診斷調(diào)查問(wèn)卷轉(zhuǎn)換為標(biāo)準(zhǔn)ODX(2.2.0)數(shù)據(jù)庫(kù)的工具。DDC工具可以將易于溝通交流的Excel
    的頭像 發(fā)表于 12-31 11:22 ?820次閱讀
    ODX診斷<b class='flag-5'>數(shù)據(jù)</b>庫(kù)轉(zhuǎn)換<b class='flag-5'>工具</b> - DDC

    緩存對(duì)大數(shù)據(jù)處理的影響分析

    ,可以將頻繁訪問(wèn)的數(shù)據(jù)存儲(chǔ)于高速緩存中,從而大大提高數(shù)據(jù)的訪問(wèn)速度。這是因?yàn)榫彺嫱ǔN挥趦?nèi)存或更快的存儲(chǔ)設(shè)備中,其訪問(wèn)速度遠(yuǎn)快于傳統(tǒng)的磁盤存儲(chǔ)。 二、減輕后端負(fù)載 大數(shù)據(jù)應(yīng)用通常需要進(jìn)行
    的頭像 發(fā)表于 12-18 09:45 ?1119次閱讀