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)
