Anaconda 代码 #

Anaconda Code 使您能够在 Excel 中直接编写 Python 代码并在本地运行。这为您提供了对工作簿中 Python 环境的灵活性和控制,允许您根据需要添加和删除包,同时确保代码和数据安全地保留在工作簿中。

初始化Anaconda代码#

注意

Anaconda Code 包含在 Anaconda Toolbox 安装 中。

Anaconda Code 由 PyScript 提供支持,这是我们在浏览器中运行 Python 的开源平台。当您首次启动 Anaconda Code 时,请按照以下步骤设置并运行您的 PyScript Python 环境:

  1. 点击启用 PyScript

  2. 一旦启用PyScript,登录到Anaconda Cloud。

理解Anaconda代码#

让我们使用仪表板选项卡来查看Anaconda Code中的不同元素:

  1. Dashboard

    创建并运行Python代码 并查看脚本日志

  2. Imports and Definitions

    自定义代码 影响工作簿中所有代码的部分

  3. Environment

    管理包和Pyodide版本 为您的编码环境

  4. Settings

    修改运行代码的默认设置

  5. Account

    查看个人资料、订阅和应用程序详情

  6. Code

    查看并编辑代码在整个工作簿中

  7. Logs

    查看错误和打印语句

  8. More

    快速确认你的代码的cell linking状态

  9. New code

    在你的工作簿中创建新的代码来运行

运行Python代码#

按照以下步骤在单元格中开始编写Python代码:

  1. 从仪表板中,点击 新建,然后选择您想要插入代码的单元格。

  2. 在代码编辑器中输入您的Python代码。如果您想在代码中引用电子表格中的一系列数据,请点击 链接范围 并选择所需的数据范围。

    Using the REF function

    REF 函数返回一个列表的列表,并可以以下列方式使用:

    功能

    使用案例

    注释

    to_df(REF())

    创建一个 DataFrame

    to_df 假设您的数据有标题

    to_array(REF())

    创建一个 NumPy 数组

    to_array 假设所有数据都是相同类型的

    你可以从Imports and Definitions标签页更改to_df()to_array()的行为。

  3. 设置单元格链接和输出选项

    注意

    通过点击插头 按钮在隔离链接模式之间切换。

  4. 点击保存并运行

您的代码在指定的单元格中运行。

编辑Python代码#

不要在单元格本身中编辑您的代码;相反,直接在Anaconda Code中修改并重新运行您的代码。

注意

用户需要拥有Anaconda.cloud账户才能编辑共享代码。

  1. 从仪表板点击 全视图编辑 以打开编辑视图。

  2. 调整你的代码,然后点击运行

管理环境#

Anaconda Code 托管一个单一的、自包含的环境,该环境管理后端软件包,使您能够在 Excel 工作簿中运行 Python 代码。您可以在此环境中管理软件包,以扩展 Python 的处理、可视化和分析能力,甚至可以选择您想要运行 Python 的 Pyodide(PyScript 使用的 WASM 引擎)版本。

注意

您可以随时更改您的环境;然而,与所有软件项目一样,更改环境会改变底层代码的解释方式,并可能导致意外的复杂情况。

选择Pyodide版本#

默认情况下,所有新电子表格都使用最新版本的Pyodide。对于现有的电子表格,Pyodide的版本和代码所需的软件包被固定到环境中。

您可以使用以下步骤切换Pyodide的版本:

  1. 环境选项卡中,点击 编辑

  2. 要切换Pyodide的版本,请点击当前Pyodide版本旁边的 下拉菜单。

管理软件包#

  1. 环境选项卡中,点击 编辑

  2. 要添加新包,请点击 添加。或者,点击箭头从 PyPI、PyScript 应用程序或直接下载链接到 Python wheel (.whl) 添加。

注意

包含编译代码的包可能不兼容PyScript的WASM引擎。更多信息,请访问PyScript.net

要删除一个包,点击 删除 你想要删除的包旁边的按钮。

自定义代码初始化#

你可以将Anaconda Code的导入和定义视为代码的初始化文件,或者像Jupyter Notebook中的第一个单元格。此部分中的所有代码对所有单元格都可用,无论它们是独立运行还是链接运行

自定义代码的导入和定义:

  1. 导入和定义选项卡中,建立与运行代码所需的包的连接。

    注意

    你只能从标准Python安装中包含的包以及环境选项卡中列出的包中进行import

  2. 点击运行

创建用户定义函数#

用户定义的函数(UDFs)允许您编写Python函数,装饰它们,并直接从Excel调用它们。

创建和调用UDF

  1. 导入和定义选项卡中,使用@UDF装饰一个函数,如下例所示:

    @UDF
    def my_custom_function(x, y):
        return x ** y
    
  2. 点击保存并运行

  3. 在一个开放的单元格中,输入 =ANACONDA。如果你将上面的示例添加到了你的定义列表中,调用 ANACONDA.MY_CUSTOM_FUNCTION 的选项将出现在下拉菜单中。

  4. 向下箭头到 ANACONDA.MY_CUSTOM_FUNCTION,按 Tab 键,然后完成函数。

  5. 使用 Ctrl+Enter (Windows)/Ctrl+Return (Mac) 来运行代码。

提示

如果您希望UDF使用函数名以外的名称,请使用name参数提供一个唯一的名称。将nested设置为False以从名称中移除ANACONDA.

@UDF(name="MYBANK.PORTFOLIO_ANALYSIS", nested=False)
def my_custom_function(x, y):
    return x ** y

使用范围参数

指定一个UDF.Range参数告诉Excel该函数的输入或输出是一个二维范围。如果不指定这个参数,Excel将拒绝传递单元格范围作为输入,也不允许从函数返回溢出的范围。

.Range 的示例用法:

@UDF
def square_me(data: UDF.Range) -> UDF.Range:
    return [[val ** 2 for val in row] for row in data]

你也可以使用UDF.Range[str]为Ranges添加类型提示,例如。

修改工作簿设置#

虽然您可以在创建和编辑代码时根据具体情况调整工作簿中运行代码的设置,但您也可以从设置选项卡分配默认设置。

单元格链接#

模式

描述

运行隔离

代码独立于其他单元格运行。在之前的PyScript单元格中声明的变量无法被引用。其他单元格可以通过REF函数引用返回值。

运行链接

PyScript单元格按行主序运行,类似于Excel中的Python执行方式。在一个单元格中声明的变量可以在初始化它们的单元格之后的单元格中引用。当一个单元格被计算时,所有链接的单元格按顺序重新计算。链接的单元格从左到右、从上到下运行,并且可以访问先前链接单元格中定义的对象。

单元格输出#

输出

描述

Excel 值

当输出DataFrame、数组、列表等时,值将“溢出”以填充所需的空间。如果溢出会覆盖包含数据的单元格,单元格将显示#SPILL错误。

本地Python对象

对于某些对象类型,您可以通过点击单元格以“卡片视图”查看内容。您可以像引用任何其他Python对象一样引用此单元格和返回的对象。

故障排除#

如果您遇到的问题未在此列出,您可以通过Anaconda社区提交支持请求来获取Anaconda的支持。

安装函数时出错#

Cause

当Excel加载Anaconda Toolbox插件并注册其自定义函数时,可能会发生此错误。此错误发生在Excel内部,无法通过Anaconda Toolbox解决。

Solution

关闭并重新打开Excel。如果问题仍然存在,请卸载Anaconda Toolbox插件,然后重新安装。