凡科网站怎么做友情链接,密云成都网站建设,佛山宣传片制作,顺德网站制作案例价位以前#xff0c;Excel和Python Jupyter Notebook之间我们只能选择一个。但是现在随着PyXLL-Jupyter软件包的推出#xff0c;可以将两者一起使用。在本文中#xff0c;我将向你展示如何设置在Excel中运行的Jupyter Notebook。在这两者之间共享数据#xff0c;甚至可以从Exce… 以前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_getexcel sheet 与 Pandas DataFrames 同步使用魔术函数“xl_get”来获取Python中当前的Excel选择。在Excel中创建数据表 选择左上角(或整个范围)然后在Jupyter笔记本中输入“xl_get”瞧Excel表现在是pandas DataFrame。xl_get魔术函数有几个选项 -c或--cell。传递单元格的地址以获取值例如xl_get --cell A1D5。 -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使用)plotlybokeh和altair。 %xl_plot使用“xl_plot”在Excel中绘制任何Python图表。从一个受支持的绘图库中向其传递任何图形对象或使用最后一个pyplot图形。使用pandas plot的效果也很好例如。%xl_plot df.plot(kindscatter).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_funcxl_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_resizeTrue)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宏然后将该宏转换为PythonPyXLL文档页面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-5ab34fc6439deephub翻译组