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")はSUCCESSを返し、入力データ"#1"を読み込みます。

メタデータの読み込み

Alteryx.readMetadata("<input connection name>" or <pandas dataframe>): 入力フィールドのメタデータをdict (辞書)として返します。入力アンカーは1から始まる番号で、"#1"、"#2"などです。

  • md = Alteryx.readMetadata("#1"); print(md);は、{'Field1': {'type': 'Byte', 'length': 1, 'source': 'TextInput:', 'description': ''}}を返します。

  • md = Alteryx.readMetadata(df); print(md);は、{'Field1': {'type': 'Byte', 'length': 1, 'source': '', 'description': ''}}を返します。

データを書き込む

Alteryx.write(<pandas dataframe>, <output anchor number>, [metadata list or dict]): ワークフローの実行時に、全データフレームをAlteryxに渡します。メタデータは、list (リスト)(列順を使用)またはdict (列名を使用)としてオプションで渡すことができます。出力アンカーは1から始まる番号で、"#1"、"#2"などです。

Pythonツールからのデータ出力には、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 DataFrameのみを受け入れます。別の形式のデータがある場合は、Pandasライブラリを使用してDataFrameに変換します。Pandasライブラリは、Designerと一緒にインストールされています。アクセスするには、import pandasを使用します。

最大 5 つのデータフレームを出力アンカーに送信できます。

  • Alteryx.write(df, 1) はSUCCESSを返し、出力接続データ1に書き込みます。

  • Alteryx.write(df, 2, Alteryx.readMetadata("#1"))はSUCCESSを返し、出力接続データ2に書き込みます。

  • Alteryx.write(df, 3, {'Field1': {'name': 'Field1_as_double', 'type': 'Double'}}) はSUCCESSを返し、出力接続データ3に書き込みます。

  • Alteryx.write(df, 4, [{'name': 'Field1_as_string', 'type': 'V_String', 'length': 8}]) はSUCCESSを返し、出力接続データ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") 'C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\'を返します。

すべての定数の取得

Alteryx.getWorkflowConstants( ): すべてのAlteryxワークフロー定数の値をdictで返します。

Alteryx.getWorkflowConstants()は以下を返します。

{
'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ファイルまたはディレクトリを表すモジュールオブジェクトを返します。ディレクトリが指定されている場合、既定ではすべてのサブモジュールがインポートされますが、オプションのサブモジュール引数を使用してリスト表示するサブモジュールを指定できます。

  • myscript = Alteryx.importPythonModule("C:\\documents\\my_script.py")myscript.square(3)は、9を返します。

  • mypkg = Alteryx.importPythonModule("C:\\documents\\my_package")mypkg.module1.half( mypkg.subpkg.max_value )は、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)