Skip to main content

Python tool Python 工具

单个工具示例

Python 有一个单个工具示例。访问示例工作流以了解如何在 Alteryx Designer 中访问此示例和其他更多示例。

Python 工具是供 Python 开发人员使用的代码编辑器。在使用此工具之前,您应该已经熟悉 Python。

导入 Alteryx Python 包后,运行Alteryx.help以了解相关有用的函数信息:

  • from ayx import Alteryx

  • Alteryx.help()

重要

尽管 Designer 接受客户 Python 代码,但 Alteryx 并不为客户 Python 代码提供支持。

入门须知

Python 工具配置窗口类似于 Jupyter Notebook。如果您不熟悉 Jupyter Notebook,请访问Help(帮助) > User Interface Tour(用户界面教程)Help(帮助) > Notebook Help(Notebook 帮助)。有关代码的帮助,请查看 Help(帮助)中的其它参考信息。

注意

尽管此工具模仿了 Jupyter Notebook 界面,但某些选项的表现可能与您的预期不同。

安装所需的数据科学包

Python 工具包括以下数据科学包:

  • ayx:Alteryx API

  • jupyter:Jupyter 元包

  • matplotlib:Python 绘图包

  • numpy:NumPy,对数字、字符串、记录和对象进行数组处理。

  • pandas:为数据分析、时间序列和统计服务的强大数据结构。

  • requests:HTTP for Humans

  • scikit-learn:一组用于机器学习和数据挖掘的 Python 模块。

  • scipy:SciPy, Python 的算法和数学库。

  • six:与 Python 2 和 3 兼容的实用程序。

  • SQLAlchemy:数据库抽象库

  • statsmodels:Python 的统计计算和模型。

其它软件包安装

根据所使用的 Designer 的版本,您可以使用Alteryx.installPackages函数安装其它程序包。例如,安装 keras

   from ayx import Package

Package.installPackages("keras")

仅当以管理员身份运行 Designer 时,才能安装其它 Python 包。非管理员用户无法安装额外的 Python 包。

连接输入

Python 工具接受多个输入。连接输入后,您必须运行工作流才能缓存传入的数据流。按照以下步骤访问传入数据连接:

1.导入 Alteryx 库:

   from ayx import Alteryx

2. 访问连接,提供一个用作数据引用的变量:

   # Use the method this method to read data from the reference. Replace "CONNECTION_NAME" with the name of your connection.

data1 = Alteryx.read("CONNECTION_NAME")

# Read in all connections and reference the returned zero-index array. Replace "INDEX_NUMBER" with the appropriate index number from the array.

Alteryx.read(Alteryx.getIncomingConnectionNames()[INDEX_NUMBER])

3.在开始使用 Python 工具之前运行工作流。这将缓存您的数据,并让工具能够访问这些数据。

注意

Python 工具把数据当作 Pandas DataFrame 处理。有关详细信息,请访问pandas.pydata.org。

配置工具

设置工作流执行模式

使用 Python 工具时,有两种模式供您选择:

  • 使用交互式模式开始编写代码。

  • 已完成代码编写并希望通过标准 Python 解释器运行代码时,使用生产模式以提高速度。

交互模式

选择交互式按钮。编写代码时使用此模式。此模式允许您通过 Jupyter notebook 与传入数据进行交互,而无需重新运行工作流来查看代码的结果。

运行工作流时,Designer 将执行以下任务:

  • Designer 缓存了一份传入数据的副本,并且可供 Python 工具使用。

  • Jupyter shell 执行 Notebook 中的代码。

  • 如果代码调用方法 Alteryx.write(),Jupyter shell 将通过输出锚点发送结果。

  • Jupyter Notebook 可显示所有错误、警告和打印语句,就像选择了全部运行一样。

生产模式

选择生产按钮。对于生产中的模型,使用此模式。在此模式下,Designer 会将 Jupyter Notebook 所有的 Python 单元格合并到单个只读的脚本中。Designer 将该脚本传递给 Python 解释器。

运行工作流时,Designer 将执行以下任务:

  • 它绕过 Jupyter shell,然后通过标准的 Python 解释器运行只读脚本。

  • 它不显示错误、警告或打印语句。

如需编辑生产模式脚本,请选择交互式模式,然后编辑 Jupyter Notebook 的单元格。完成编辑后,选择生产模式。

设置数据存储格式

Python 工具有两个格式选项:SQLite 和 YXDB。

SQLite
  1. 选择 Python 工具配置窗口中的 Alteryx 菜单。

  2. 选择 Sqlite override(Sqlite 覆盖)

Thumbnail
YXDB

请按照以下步骤使用 YXDB 数据存储格式。

  1. 选择 Python 工具配置窗口中的 Alteryx 菜单。

  2. 取消选择 Sqlite override(Sqlite 覆盖) 以删除复选标记。

SQLite

YXDB

Blob

不支持

支持

空间对象

不支持

在 Python 工具和其它工具之间传递空间对象。从 Python 工具创建空间对象输出时,请使用元数据标记。

列限制

限制为 2000

无限制

Null 值注释

不支持

Designer 将数字列或字节列转换为 float64 数据类型(即双精度浮点)。

如果不更改行的排列或使用地理空间 (GeoSpatial )Python,Alteryx 建议您将地理空间数据从数据集中分离出去,在 Python 工具之后重新将其合并。这样做的原因是 Alteryx 二进制文本和地理空间文本的转换很缓慢。

导入一个文件或目录

您可以通过两种方式导入一个文件或目录:

  • 使用 Alteryx 菜单中的导入功能导入单个 Python 脚本或 Jupyter Notebook。

  • 使用导入命令导入目录。

按照以下步骤使用导入功能导入 Python 脚本或 Jupyter Notebook:

  1. 选择 Alteryx 菜单。

  2. 选择 Import Script(导入脚本)

  3. 选择选择文件

  4. 找到 .py .ipynb 文件,然后选择导入

使用 Kernel 菜单

利用 Kernel 菜单发出以下任一命令:

  • 要停止处理,选择 Interrupt

  • 要重新启动处理,选择 Restart

  • 要清除工作簿的即时结果,选择 Reconnect

  • Change kernel 不具备任何功能。

  • Alteryx 建议您不要选择 Shutdown

遵循最佳实践

这些最佳实践可帮助您成功使用 Python 工具:

当您引用工作流常量(如Engine.WorkflowDirectory)时,请使用Alteryx.getWorkflowConstant方法。否则,在运行代码时,命令的结果或输出将永久替换 Jupyter Notebook 中的命令。

警告

避免在工作流常量中使用%包装器。相反,按照如以下的方式调用Engine.WorkflowDirectory

from ayx import Alteryx

Alteryx.getWorkflowConstant("Engine.WorkflowDirectory")

从工具输出数据

使用 Alteryx.write 方法从该工具输出数据。

要将数据发送到画布上的其它工具,请使用以下方法:

   # Replace "PANDAS_DF" with your data, in DataFrame form.
# Replace "OUTPUT_ANCHOR_NUM" with the number of your output anchor.

Alteryx.write(PANDAS_DATAFRAME, OUTPUT_ANCHOR_NUM)

Alteryx.write 方法仅接受Pandas DataFrames。如果数据采用其它格式,请使用 Pandas 库将其转换为 DataFrame。Pandas 库已作为 Designer 的一部分安装。通过在 Jupyter Notebook 中 import pandas的方式接入。

最多可以将五个 DataFrame 发送到输出锚点。