Skip to main content

Alteryx Python 函数

重要

运行 from ayx import Alteryx 后,以下函数可作为 Alteryx 包的一部分进行使用。这些函数允许您在 Alteryx 和 Jupyter 之间传递数据。

读取数据

Alteryx.read("<input connection name>"):将输入数据作为 pandas DataFrame 返回。输入锚点编号从 1 开始:例如“#1”、“#2”等。

示例

df = Alteryx.read("#1") returns SUCCESS: reading input data "#1".

读取元数据

Alteryx.readMetadata("<input connection name>" or <pandas dataframe>):将输入字段元数据作为字典 (dict) 返回。输入锚点编号从 1 开始:例如“#1”、“#2”等。

示例

  • md = Alteryx.readMetadata("#1"); print(md); returns {'Field1': {'type': 'Byte', 'length': 1, 'source': 'TextInput:', 'description': ''}}.

  • md = Alteryx.readMetadata(df); print(md); returns {'Field1': {'type': 'Byte', 'length': 1, 'source': '', 'description': ''}}.

写入数据

Alteryx.write(<pandas dataframe>, <output anchor number>, [metadata list or dict]):执行工作流时,将完整的数据帧传递给 Alteryx。您可以选择性地传入元数据,既可作为列表(按列顺序)传入,也可作为字典(按列名)传入。输入锚点编号从 1 开始:例如“#1”,“#2”等。

使用 Alteryx.write 方法从 Python 工具输出数据。要将数据发送到画布上的其它工具,请使用以下方法:

# 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。Designer 已预装 Pandas 库。通过 import pandas 访问。

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

示例

  • Alteryx.write(df, 1) returns SUCCESS: writing outgoing connection data 1.

  • Alteryx.write(df, 2, Alteryx.readMetadata("#1")) returns SUCCESS: writing outgoing connection data 2.

  • Alteryx.write(df, 3, {'Field1': {'name': 'Field1_as_double', 'type': 'Double'}}) returns SUCCESS: writing outgoing connection data 3.

  • Alteryx.write(df, 4, [{'name': 'Field1_as_string', 'type': 'V_String', 'length': 8}]) returns SUCCESS: writing outgoing connection data 4.

列出传入连接

Alteryx.getIncomingConnectionNames( ):返回包含所有传入数据连接的列表。如果连接不同步,请重新运行 Alteryx 工作流。

示例

Alteryx.getIncomingConnectionNames() 返回 ["#1"、"#2"、"model"]。

安装软件包

Alteryx.installPackages("<package name or list of package names>"):从 PyPI 安装软件包。需要互联网连接。此外,如果使用 Alteryx 的管理员安装版本,必须以管理员模式打开 Alteryx 才能安装软件包。非管理员安装没有此限制。

示例

  • Alteryx.installPackages("tensorflow")

  • Alteryx.installPackages(["keras","theano","gensim"])

工作流常量

获取工作流常量

Alteryx.getWorkflowConstant("<constant name>"):返回 Alteryx 工作流常量的值(您可在 Designer 的工作流配置的工作流选项卡中访问这些常量)。

重要

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

from ayx import Alteryx
Alteryx.getWorkflowConstant("Engine.WorkflowDirectory")

示例

Alteryx.getWorkflowConstant("Engine.TempFilePath") returns 'C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\'.

获取所有常量

Alteryx.getWorkflowConstants( )以字典形式返回所有 Alteryx 工作流常量的值。

示例

Alteryx.getWorkflowConstants() returns:

{
'Engine.GuiInteraction': '1',
'Engine.IterationNumber': 0,
'Engine.ModuleDirectory': 'C:\my_workflows\',
'Engine.TempFilePath': 'C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\',
'Engine.Version': '2018.3.0.9999',
'Engine.WorkflowDirectory': 'C:\my_workflows\',
'Engine.WorkflowFileName': 'my_workflow.yxmd'
}

导入 Python 模块

Alteryx.importPythonModule("<path>", [list of submodules]):返回表示指定 Python 文件或目录的模块对象。默认情况下,如果提供目录,将导入所有子模块,但您可以通过可选的 submodules 参数指定子模块列表。

示例

  • myscript = Alteryx.importPythonModule("C:\\documents\\my_script.py")myscript.square(3) returns 9.

  • mypkg = Alteryx.importPythonModule("C:\\documents\\my_package")mypkg.module1.half( mypkg.subpkg.max_value ) returns 4

上述代码片段基于以下文件和文件夹:

C:\documents  
C:\documents\my_script.py  
^^^ (contains a function square() that returns the input value squared)  
C:\documents\my_package  
C:\documents\my_package\__init__.py  
C:\documents\my_package\module1.py  
^^^ (contains a function half() that returns half of the input value)  
C:\documents\my_package\subpkg  
C:\documents\my_package\subpkg\__init__.py  
^^^ (contains a variable max_value = 8)