日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

c调用python gensim包_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏

發布時間:2025/3/12 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c调用python gensim包_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以前,Excel和Python Jupyter Notebook之間我們只能選擇一個。但是現在隨著PyXLL-Jupyter軟件包的推出,可以將兩者一起使用。

在本文中,我將向你展示如何設置在Excel中運行的Jupyter Notebook。在這兩者之間共享數據,甚至可以從Excel工作簿調用Jupyter筆記本中編寫的Python函數!

開始

首先,要在Excel中運行Python代碼,你需要使用PyXLL包。PyXLL使我們可以將Python集成到Excel中,并使用Python代替VBA。要安裝PyXLL Excel加載項“ pip install pyxll”,然后使用PyXLL命令行工具安裝Excel的加載項:

?>> pip install pyxll>> pyxll install

安裝完PyXLL Excel插件,下一步就是安裝PyXLL -jupyter軟件包。該軟件包提供了PyXLL和Jupyter之間的鏈接,因此我們可以在Excel內使用Jupyter筆記本。

使用pip安裝pyxll-jupyter包:

?>> pip install pyxll-jupyter

一旦安裝了PyXLL Excel加載項和PyXLL-Jupyter軟件包后,啟動Excel將在PyXLL選項卡中看到一個新的“ Jupyter”按鈕。

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

在Jupyter面板中,你可以選擇一個現有的筆記本或創建一個新的筆記本。要創建一個新的筆記本,請選擇“新建”按鈕,然后選擇“ Python 3”。

如何使用

現在,你已經在Excel中運行了完整的Jupyter筆記本!但是,這有什么好處呢?這比在Excel外部運行筆記本更好?

好了,現在你可以使用Excel處理數據,并使用Python處理相同的數據。將Excel用作用于組織和可視化數據的交互式操作,無縫切換到Python以使用更復雜的功能。

將Jupyter筆記本用作草稿板,以試用Python代碼。在Jupyter筆記本上完全用Python編寫Excel函數,并進行實時測試。開發完一個有用的可重用函數后,將其添加到PyXLL Python項目中。這樣你每次使用Excel時都可以使用相同的函數。

在本文的其余部分,我將向你展示如何:

  • 使用Jupyter筆記本在Excel和Python之間共享數據

  • 在筆記本上寫Excel工作表函數(udf)

  • 腳本Excel與Python代替VBA

從Excel獲取數據到Python

因為PyXLL在與Excel相同的進程中運行Python,所以用Python訪問Excel數據以及在Python和Excel之間快速調用。

為了使事情盡可能簡單,pyxll-jupyter包附帶了一些IPython“魔法”函數,可以在你的Jupyter筆記本中使用。

% xl_get

excel sheet 與 Pandas DataFrames 同步

使用魔術函數“%xl_get”來獲取Python中當前的Excel選擇。在Excel中創建數據表, 選擇左上角(或整個范圍),然后在Jupyter筆記本中輸入“%xl_get”,瞧!Excel表現在是pandas DataFrame。

%xl_get魔術函數有幾個選項:

? -c或--cell。傳遞單元格的地址以獲取值,例如%xl_get --cell A1:D5。 -t或--type。指定獲取值時要使用的數據類型,例如%xl_get --type numpy_array。 -x或--no-auto-resize。僅獲取選定范圍或給定范圍的數據。不要擴展到包括周圍的數據范圍。

PyXLL還有其他與Excel交互以將數據讀入Python的方式。“%xl_get”魔術功能只是使事情變得更簡單!當Jupyter筆記本在Excel中運行時,所有其他方法(例如,使用XLCell類,Excel的COM API甚至xlwings)仍然可用。

提示:可以為魔術函數的結果分配一個變量!例如,嘗試“ df =%xl_get”。

將Python中的數據移回Excel

從Python到Excel的另一種傳輸方式也可以正常工作。無論你是使用Python加載數據集并將其傳輸到Excel工作簿,還是通過Excel處理數據集并希望將結果返回Excel,從Python復制數據到Excel都很容易。

?%xl_set

魔術函數“%xl_set”獲取一個Python對象并將其寫入Excel。在Excel中是否有想要的數據框“ df”?只需使用“%xl_set df”,它將被寫入Excel中的當前選擇。

與%xl_get一樣,%xl_set也具有一系列選項來控制其行為。你甚至可以使用PyXLL的單元格格式設置功能在將結果寫入Excel的同時自動應用格式設置。

?-c或--cell。將值寫入的單元格地址,例如%xl_set VALUE --cell A1。-t或--type。將值寫入Excel時要使用的數據類型說明符,例如%xl_set VALUE --type dataframe 。-f或--formatter。PyXLL單元格格式化程序對象,例如%xl_set VALUE --formatter DataFrameFormatter()。請參閱單元格格式。-x或--no-auto-resize。不要自動調整范圍大小以適合數據。僅將值寫入當前選擇或指定范圍。

與%xl_get一樣,%xl_set只是一個快捷方式,你可能已與PyXLL一起使用的所有其他寫回Excel的方式仍然可以在Jupyter筆記本中使用。

在Excel中使用Python圖(matplotlib / plotly等)

關于數據處理的一大優點是可用的功能強大的繪圖程序包。例如df.plot()

PyXLL集成了所有主要的繪圖庫,因此你也可以在Excel中充分利用它們。這包括matplotlib(由pandas使用),plotly,bokeh和altair。

?%xl_plot

使用“%xl_plot”在Excel中繪制任何Python圖表。從一個受支持的繪圖庫中向其傳遞任何圖形對象,或使用最后一個pyplot圖形。使用pandas plot的效果也很好,例如。%xl_plot df.plot(kind='scatter').

%xl_plot魔術函數具有一些選項來控制其工作方式:

? -n或--name。Excel中圖片對象的名稱。如果使用已經存在的圖片名稱,則該圖片將被替換。 -c或--cell。用作新圖片位置的單元格地址。如果圖片已經存在,則無效。 -w或--width。Excel中圖片的寬度(以磅為單位)。如果更新現有圖片,則無效。 -h或--height。Excel中圖片的高度(以磅為單位)。如果更新現有圖片,則無效。

%xl_plot是pyxll.plot函數的快捷方式。

從Excel調用Python函數

你可以直接從Excel工作簿中調用Python函數,而不是在Excel和Jupyter之間不斷移動數據然后運行一些Python代碼

PyXLL的主要用例之一是用Python編寫自定義Excel工作表函數(或“ UDF”)。這用于在使用Python函數構建的Excel中構建模型,這些函數當然可以使用其他Python庫(例如pandas和scipy)。

你也可以在Jupyter筆記本中編寫Excel工作表函數。這是在不離開Excel即可使用Python IDE的情況下嘗試想法的絕佳方法。

自己試試吧。編寫一個簡單的函數,然后將“ pyxll.xl_func”修飾符添加到你的函數中:

?from pyxll import xl_func@xl_funcdef test_func(a, b, c): ? # This function can be called from Excel! ? return (a * b) + c

輸入代碼并在Jupyter中運行單元格后,即可立即從Excel工作簿中調用Python函數。

不只是簡單的功能。你可以將整個數據范圍作為pandas DataFrames傳遞給函數,并返回任何Python類型,包括numpy數組和DataFrames!你可以通過給@xl_func裝飾器一個參數字符串來告訴PyXLL期望什么類型。

例如,嘗試以下方法:

?from pyxll import xl_func# The "signature" tells PyXLL how to convert the arguments# and returned value.@xl_func("dataframe df: dataframe", auto_resize=True)def df_describe(df): ? # 'df' is a pandas DataFrame built from the range passed ? # to this function. ? desc = df.describe() ? ? ? # 'desc' is a new DataFrame, which PyXLL will convert to ? # a range of values when returning to Excel. ? return desc

現在,你可以編寫復雜的Python函數來進行數據轉換和分析,Excel中如何調用或排序這些函數。更改輸入會導致調用函數,并且計算出的輸出會實時更新,這與你期望的一樣!

在Excel中使用Python而不是VBA的腳本

你是否知道在VBA中可以執行的所有操作也可以在Python中完成?編寫VBA時將使用Excel對象模型,但是Python也提供相同的API。

在Excel中運行的Jupyter筆記本中,可以使用整個Excel對象模型,因此你可以使用與Excel VBA編輯器中完全相同的方式編寫Excel腳本。

由于PyXLL在Excel進程內運行Python,因此從Python調用Excel不會對性能造成任何影響。也可以從外部Python進程調用Excel,但這通常要慢得多。在Excel中運行Jupyter筆記本也使一切變得更加便捷!

使用PyXLL的xl_app函數獲取“ Excel.Application”對象,該對象等效于VBA中的Application對象。嘗試進行諸如獲取當前選擇和更改單元格內部顏色之類的操作。弄清楚如何使用Excel對象模型進行操作的一種好方法是記錄VBA宏,然后將該宏轉換為Python!PyXLL文檔頁面Python作為VBA的替代品提供了一些有關如何做到這一點的技巧。

總結

Python是VBA的強大替代品。使用PyXLL,你可以完全用Python編寫功能齊全的Excel加載項。Excel是一種出色的交互式計算工具。添加Python和Jupyter將Excel提升到一個全新的水平。

使用Jupyter筆記本編寫的代碼可以輕松地重構為獨立的Python包,以創建Excel工具包來為直觀的工作簿和儀表板提供動力。任何Excel用戶都將能夠利用使用PyXLL編寫的Python工具,而無需任何Python知識。

最后 PyXLL的官網地址:https://www.pyxll.com/blog/python-jupyter-notebooks-in-excel/

作者:Tony Roberts

原文地址:https://towardsdatascience.com/python-jupyter-notebooks-in-excel-5ab34fc6439

deephub翻譯組

總結

以上是生活随笔為你收集整理的c调用python gensim包_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。