我经常向所有人推荐有用的数据分析工具,并且得到了钢铁侠的各种好评。
这次也不例外,我想推荐另一个,它是一件爆炸性的文物。
Excel和JupyterNotebok都是我每天都必须使用的工具,并且这两个工具经常协同工作,并且工作效率一直很高。
但说实话,毕竟有两种工具,使用它们时肯定会有一些转换成本。
最近,当我访问GitHub时,突然发现了工件“ PyXLL-Jupyter”,可以将JupyterNotebook完美地嵌入到Excel中!是的,你听到的是对的。
使用它,我们可以在Excel中运行JupyterNotebook,调用Python函数并实现数据共享。
1.安装首先,如果要在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。
2.此方法的用途是什么? 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. PyXLL在Excel中使用Python进行绘图的另一大用途是它集成了几乎所有主流可视化程序包,因此我们可以随意使用Excel中的这些可视化程序包进行绘图,包括matplotlib,plotly,bokeh和altair。
%xl_plot同样,可以使用魔术函数%xl_plot在Excel中绘制任何Python图形。
任何受支持的可视化程序包也可以执行绘图,然后将图形对象传输到Excel。
例如,上图中的熊猫绘制效果非常好。
%xl_plotdf.plot(kind ='scatter')3.从Excel调用Python函数并使用Excel与函数是分不开的,当我们需要一些复杂的函数时,内置函数可能无法满足我们的需求。
使用PyXLL,我们可以直接在Excel中调用Python函数并进行实时测试。
这样避免了在Excel和Jupyter之间来回切换的开销。
它有点像数据帧的应用用法。
编写直接与Excel集成的函数。
编写函数后,可以将其添加到PyXLLPython项目中。
这样,将来每次都可以重复使用相同的功能。
frompyxllimportxl_func @ xl_funcdeftest_func(a,b,c):return(a * b)+ c例如,输入上述代码并在Jupyter中运行后,Python工作簿将立即可使用Python函数。
不仅是一个简单的函数,还可以将整个数据作为pandas DataFrames传递给该函数,并返回任何Python类型,例如numpyarray,DataFrames,甚至通过给@xl_func提供签名字符串来告诉PyXLL输出哪种类型。
装饰工。
例如,以下函数:frompyxllimportxl_func#装饰器签名告诉PyXLL如何转换函数参数和返回值@xl_func(“ dataframedf:dataframe“ index = True””,auto_resize = True)defdf_describe(df): #df是一个从属数据集,在其中创建的pandasDataFrame传递给函数desc = df.describe()#desc是一个新的DataFrame(由PyXLL创建并转换为一组值并返回到Excel)returndesc现在可以编写复杂的Python函数进行数据转换和分析,但是您可以协调在Excel中如何调用或排序这些函数。
更改输入将导致调用该函数,并且计算出的输出将按照我们的预期实时更新。
4.替换VBAVBA脚本所需的函数功能在Python中具有相同的API。
对于熟悉Python但不熟悉VBA的学生来说,这无疑是个好消息。
办公室