经常给大家推荐好用的数据分析工具,也收到各种讽刺的好评。这次也不例外,我要再推荐一款,而且是大热单品。Excel和JupyterNotebook都是我每天必用的工具,而且这两个工具经常配合使用,工作效率一直都不错。不过说实话毕竟是两个工具,使用的时候肯定会有一些切换成本。最近在浏览GitHub的时候突然发现一个神器“PyXLL-Jupyter”,可以完美的把JupyterNotebook嵌入到Excel中!是的,你没听错,我们可以用它在Excel中运行JupyterNotebook,调用Python函数,实现数据共享。一、安装首先,如果要在Excel中运行Python代码,需要安装PyXLL插件。PyXLL可以将Python集成到Excel中,用Python代替VBA。首先用pip安装PyXLL。pipinstallpyxll然后使用PyXLL独特的命令行工具安装Excel加载项。>>pyxllinstall在Excel中安装好PyXLL插件之后,接下来就是安装pyxll-jupyter包了。使用pip安装pyxll-jupyter包:pipinstallpyxll-jupyter安装后,启动Excel,您将在PyXLL选项卡中看到一个新的Jupyter按钮。单击此按钮可在Excel工作簿的侧面板中打开JupyterNotebook。该面板是Excel界面的一部分,可以通过拖放取消停靠或停靠在其他地方。在Jupyter面板中,您可以选择现有笔记本或创建新笔记本。新建一个Notebook,选择New按钮,选择Python3。二、using方法有什么用?1、Excel和Python共享数据比如我们要将Excel中的数据导入到Python中。**由于Excel和Python已经在同一个进程中运行,所以在Python中访问Excel数据和在Python和Excel之间切换都非常快。更神奇的是pyxll-jupyter还单独自带了一些IPython的神奇功能,输入后可以一键完成同步。%xl_get将Python中的数据移动到Excel中,同样如此,很简单。无论您是使用Python加载数据集然后将其传输到Excel还是其他,将数据从Python复制到Excel都非常容易。%xl_set当然,%xl_get和%xl_set都带有参数选项,可以自定义导入导出规则。2、使用Python在Excel中绘图PyXLL的另一个大用处是它集成了几乎所有主流的可视化包,所以我们可以使用这些可视化包在Excel中自由绘图,包括matplotlib、plotly、bokeh、altair。%xl_plot同样,任何Python图形都可以使用魔法函数%xl_plot在Excel中绘制。任何一个受支持的可视化包也可以进行绘图,然后作为图形对象传递给Excel,例如上图中使用pandas的绘图效果很好。%xl_plotdf.plot(kind='scatter')3.从Excel调用Python函数使用Excel离不开函数,当我们需要一些复杂的函数时,内置的函数可能不能满足我们的需要。借助PyXLL,我们可以直接在Excel中调用Python函数,并进行实时测试。这样就避免了在Excel和Jupyter之间来回切换的成本,有点像dataframe的apply用法,写个函数直接和Excel完美集成。编写函数后,还可以将其添加到PyXLLPython项目中。这样以后每次都可以复用同一个函数,简直不要太香!frompyxllimportxl_func@xl_funcdeftest_func(a,b,c):return(a*b)+c例如输入上述代码,在Jupyter中运行后,Python函数会立即被Excel工作簿调用。不仅仅是简单的函数,您可以将整个数据作为pandasDataFrames传递给函数并返回任何Python类型,例如numpy数组、DataFrames,甚至通过为@xl_func装饰器提供签名字符串类型来告诉PyXLL要输出什么。例如下面的函数:frompyxllimportxl_func#装饰器签名告诉PyXLL如何转换函数参数和返回值@xl_func("dataframedf:dataframe
