<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          終于,在Excel中可以直接使用Python!

          共 3346字,需瀏覽 7分鐘

           ·

          2021-03-09 13:45


          大家好~經(jīng)常給大家推薦好用的數(shù)據(jù)分析工具,也收到了鐵子們的各種好評。這次也不例外,我要再推薦一個,而且是個爆款神器。

          ExcelJupyter Notebok都是我每天必用的工具,而且兩個工具經(jīng)常協(xié)同工作,一直以來工作效率也還算不錯。但說實(shí)在,畢竟是兩個工具,使用的時候肯定會有一些切換的成本。

          最近,在逛GitHub突然發(fā)現(xiàn)了一款神器「PyXLL-Jupyter」,它可以完美將Jupyter Notebook嵌入到Excel中!是的,你沒聽錯,使用它我們就可在Excel中運(yùn)行Jupyter Notebook,調(diào)用Python函數(shù),實(shí)現(xiàn)數(shù)據(jù)共享。

          一、安裝

          首先,想要在Excel中運(yùn)行Python代碼,需要安裝PyXLL插件。PyXLL可以將Python集成到Excel中,用Python替代VBA

          先用 pip 安裝 PyXLL

          pip install pyxll

          然后再用PyXLL獨(dú)特的命令行工具安裝Excel插件。

          >> pyxll install

          安裝好了PyXLL在 Excel中的插件,下一步就是安裝pyxll-jupyter軟件包了。使用pip安裝pyxll-jupyter軟件包:

          pip install pyxll-jupyter

          安裝完畢后,啟動Excel,將在PyXLL選項(xiàng)卡中看到一個新的Jupyter按鈕。

          單擊此按鈕可在Excel工作簿的側(cè)面板中打開Jupyter Notebook。該面板是Excel界面的一部分,可以通過拖放操作取消停靠或停靠在其他位置。

          在Jupyter面板中,你可以選擇一個現(xiàn)有的Notebook或創(chuàng)建一個新的Notebook。創(chuàng)建一個新的Notebook,選擇新建按鈕,然后選擇Python 3

          二、使用方法

          這樣做有什么用處呢?

          1、Excel和Python共享數(shù)據(jù)

          比如,我們要將數(shù)據(jù)從Excel導(dǎo)入Python。

          由于Excel和Python已經(jīng)在同一進(jìn)程中運(yùn)行了,所以在Python中訪問Excel數(shù)據(jù)以及在Python和Excel之間切換非常快。

          更牛X的是,pyxll-jupyter還單獨(dú)附帶了一些IPython魔法函數(shù),輸入后一鍵即可完成同步。

          %xl_get

          將Python中的數(shù)據(jù)移到Excel,也是同理,非常簡單。

          無論是使用Python先加載數(shù)據(jù)集,再傳輸?shù)紼xcel,還是其它形式,從Python復(fù)制數(shù)據(jù)到Excel非常容易。

          %xl_set

          當(dāng)然,%xl_get%xl_set都附帶參數(shù)選項(xiàng)可以自定義導(dǎo)入導(dǎo)出規(guī)則。

          2. 在Excel中使用Python繪圖

          PyXLL的另一大用處就是它集成了幾乎所有主流的可視化包,因此我們可以在Excel中利用這些可視化包隨意繪圖,包括matplotlibplotlybokehaltair等。
          %xl_plot

          同樣,使用魔法函數(shù)%xl_plot在Excel中可以繪制任何的Python圖。任何一個受支持的可視化包也可進(jìn)行繪圖然后傳遞圖形對象到Excel中,比如上圖中使用pandas的繪圖效果就很好。

          %xl_plot df.plot(kind='scatter')

          3. 從Excel調(diào)用Python函數(shù)

          使用Excel離不開函數(shù),而當(dāng)我們需要一些復(fù)雜功能時,自帶函數(shù)未必能滿足我們的需求。

          通過PyXLL,我們可以直接在Excel中調(diào)用Python函數(shù),并對其進(jìn)行實(shí)時測試。這就避免了Excel和Jupyter之間的來回切換成本,有點(diǎn)像dataframe的apply用法,寫個函數(shù)直接與Excel完美融合。

          函數(shù)寫好后,還可將其添加到PyXLL Python項(xiàng)目中。這樣以后每次都可以復(fù)用實(shí)現(xiàn)相同功能,簡直不要太香!

          from pyxll import xl_func

          @xl_func
          def test_func(a, b, c):
              return (a * b) + c

          比如,輸入以上代碼在Jupyter中運(yùn)行后,Python函數(shù)將立即可被Excel工作簿調(diào)用。

          不只是簡單的函數(shù),還可以將整個數(shù)據(jù)作為pandasDataFrames傳給函數(shù),并返回任何的Python類型,比如numpy arrayDataFrames,甚至還可以通過給@xl_func裝飾器一個簽名字符串來告訴PyXLL輸出什么類型。例如,以下函數(shù):

          from pyxll import xl_func

          # 裝飾器簽名告訴 PyXLL 如何轉(zhuǎn)換函數(shù)參數(shù)和返回的值
          @xl_func("dataframe df: dataframe<index=True>", auto_resize=True)
          def df_describe(df):
              # df 是一個從數(shù)據(jù)集里創(chuàng)建的 pandas DataFrame 傳遞給函數(shù)
              desc = df.describe()
              # desc 是新的 DataFrame(PyXLL轉(zhuǎn)換為一組值并返回給Excel所創(chuàng)建的)
              return desc
          現(xiàn)在可以編寫復(fù)雜的Python函數(shù)來進(jìn)行數(shù)據(jù)轉(zhuǎn)換和分析,但是可以協(xié)調(diào)在Excel中如何調(diào)用或排序這些函數(shù)。更改輸入會導(dǎo)致調(diào)用函數(shù),并且計(jì)算出的輸出會實(shí)時更新,這與我們期望的一樣。

          4. 替代VBA

          VBA腳本所需的功能函數(shù),在Python中均有相同的API。這對于熟悉Python但不熟悉VBA的同學(xué)絕對是個好消息。

          官網(wǎng)還給出了和VBA功能一樣的API說明文檔。

          https://www.pyxll.com/docs/userguide/vba.html

          Jupyter Notebook在Excel中運(yùn)行,整個Excel對象都可用,所有操作就像在VBA編輯器中編寫Excel腳本一模一樣。

          由于PyXLL在Excel進(jìn)程內(nèi)運(yùn)行Python ,因此從Python調(diào)用Excel不會對性能造成任何影響。當(dāng)然,也可以從外部Python進(jìn)程調(diào)用Excel,但這通常要慢很多。在Excel中運(yùn)行Jupyter Notebook,一切變得就不一樣了!

          使用PyXLLxl_app函數(shù)獲取Excel.Application對象,該對象等效于VBA中的Application對象。弄清楚如何使用Excel對象模型進(jìn)行操作的一種好方法是記錄VBA宏,然后將該宏轉(zhuǎn)換為Python

          下圖中嘗試將當(dāng)前選擇單元格更改顏色。

          三、總結(jié)

          PyXLL將完美融合PythonExcel,實(shí)現(xiàn)了以下功能,為表格數(shù)據(jù)處理提升一個全新的高度。

          • Excel和Python共享數(shù)據(jù)
          • 在Excel中使用Python繪圖
          • 從Excel調(diào)用Python函數(shù)
          • 替代VBA腳本

          不得不說這個工具是真的香,喜愛Python的同學(xué)可以不用學(xué)習(xí)VBA了,Python腳本打天下。

          ············END············

          書籍獲獎名單




          恭喜四位中獎的童鞋,快加小編微信(Mayyy530)來領(lǐng)取書籍吧!



          昨日留言名單



          恭喜三位中獎的童鞋,快加小編微信(Mayyy530)來領(lǐng)取紅包一份吧!




          1. 太魔性了!用Python實(shí)現(xiàn)火爆全網(wǎng)的「螞蟻呀嘿」視頻特效

          2. 別再問我Python怎么打包成exe了!

          3. 史上最全Python 操作 Excel庫總結(jié)!

          4. 這屆網(wǎng)友的韭菜可真好割!



          瀏覽 57
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青青草成人视频视频 | 精品久久久久久久成人热 91 | 伊人大香蕉伊人在线 | 国产黄色视频片 | 亚洲色图21p |