Python ツール
Python ツールは Python ユーザー用のコードエディターです。 このツールを使用する前に、Python を習熟しておくことをお勧めします。
from ayx import Alteryx
Alteryx.help()。
Python サポート
Designer はカスタム Python コードを受け入れます。 Alteryx はカスタム Python コードをサポートしていません。
Alteryx パブリックギャラリーの互換性
Gallery.alteryx.comへのワークフローの公開を計画していますか?まず、免除を申請する必要があります。 この制限は、Alteryx サーバーと Alteryx ギャラリーのプライベートインスタンスには適用されません。
はじめに
Python ツールの設定ウィンドウのインターフェースは Jupyter Notebook に似ています。 Jupyter Notebooks をよくご存知でない場合は、[ヘルプ] > [ユーザーインターフェースツアー] または{ヘルプ] > [ノートブックヘルプ] をご覧ください。 コードに関するサポートについては、ツールの[ヘルプ] オプションで追加の参照をご覧ください。
必要に応じて追加のデータサイエンスパッケージをインストール
Python ツールには、以下の一般的なデータサイエンスパッケージが含まれています:
- ayx: Alteryx API
- geopandas: パンダが使用するデータ型を拡張して、幾何学的型に対する空間操作を可能にします。: パンダが使用するデータ型を拡張して、幾何学的型に対する空間操作を可能にします。span
- jupyter: Jupyter メタパッケージ
- matplotlib: Python プロットパッケージ
- numpy: NumPy、数値、文字列、レコード、オブジェクトの配列処理
- pandas: データ分析、時系列、統計のための強力なデータ構造
- requests: 人間のための Python HTTP
- scikit-learn: 機械学習とデータマイニングのための Python モジュール一式
- scipy: SciPy、Python 科学計算ライブラリ
- six: Python 2 および 3 の互換性ユーティリティ
- SQLAlchemy: データベース抽象化ライブラリ
- statsmodels: Pythonの統計計算とモデル
追加のパッケージインストール
使用している Designer のインストールタイプに応じて、Alteryx.installPackages を使用して追加のパッケージをインストールできます。 下記の例では、keras をインストールしています。
from ayx import Package
Package.installPackages("keras")
- 非管理者として Alteryx を実行している場合は、特別な許可なしで追加の Python パッケージをインストールできます。
- 管理者として Alteryx を実行している場合は、最初に管理者として Alteryx を実行し、追加の Python パッケージをインストールする必要があります。 管理者として Alteryx を実行できない場合は、追加の Python パッケージをインストールすることはできません。
入力を接続する
Python ツールは複数入力に対応します。 入力が接続されたら、ワークフローを実行して受信データストリームをキャッシュする必要があります。
受信データ接続にアクセスするには:
- Alteryx ライブラリをインポート: from ayx import Alteryx
- 接続にアクセスし、データ参照を使用するための変数を入力します:
- 接続名: Alteryx.read("<connection name>") を使用します。
- すべての接続を読み取り、返された 0 インデックス配列を参照します: Alteryx.read(Alteryx.getcomingConnectionNames()[])<index number=""></index>
-
Python ツールを使い始める前にワークフローを実行してください。 ワークフローを実行するとデータがキャッシュされ、Python ツールにアクセスできるようになります。 データは pandas データフレームとして扱われます。 pandas データフレームについての詳細は、pandas.pydata.org を参照してください。
from ayx import Alteryx
data1 = Alteryx.read("#1")
from ayx import Alteryx
data2 = Alteryx.read(Alteryx.getIncomingConnectionNames()[1])
ツールを設定する
Python ツールを使い始める前にワークフローを実行してください。
[インタラクティブモード] を使って開発を始めます。 これにより、すべてのエラー、警告、印刷ステートメントが Jupyter Notebook に表示されます。 開発が完了し、標準の Python インタープリターを使用してコードを実行する場合は、[プロダクションモード] を使用して速度を向上させます。
マルチバイト文字セット (MBCS) を印刷する必要がありますか? プロダクションモードでマルチバイト文字セット (MBCS) を印刷する手順について、トラブルシューティングを参照してください。
開発時にはインタラクティブモードを使用してください。 そうすることで、コードの結果を確認するためにワークフローを再実行しなくても、Jupyter Notebook を介して受信データと表示することができます。
インタラクティブモードを設定するには:
- [インタラクティブ] をクリックしてインタラクティブモードを設定します。
- ワークフローを実行します。 Alteryx は受信データのコピーをキャッシュして、Python ツールで利用できるようにします。
アップストリームで変更を加えた後は、キャッシュされたデータを更新するためにワークフローを再実行する必要があります。 これにより、キャッシュされたデータが実際の受信データを表示するようになります。
- Jupyter Shell が Jupyter Notebook のコードを実行しました。
- コードが Alteryx.write() を呼び出すと、Jupyter shell は結果を出力アンカーを介して送信します。
- Jupyter Notebook には、すべてのエラー、警告、print 文が表示されます。 これは、[すべて実行] を選択した場合と同じです。
プロダクションモードでは、Alteryx は Jupyter Notebook のすべての Python セルを単一の読み取り専用スクリプトに統合します。 Alteryx は、この読み取り専用スクリプトを使用して、コードを Python インタープリターに渡します。
プロダクションモードを設定するには:
- [プロダクション] をクリックして、プロダクションモードを設定します。
- ワークフローを実行します。 Alteryx は Jupyter shell をバイパスし、標準の python インタープリターを介して読み取り専用スクリプトを実行します。 結果、エラー、警告、print 文 は、Jupyter Notebookに印刷されません。
プロダクションモードスクリプトを編集するには:
- [インタラクティブ] モードをクリックし、Jupyter Notebook 内でセルを編集します。 編集が完了したら、プロダクションモードをクリックします。
データストレージ形式の設定
推奨されるデフォルトのバックエンドストレージ形式は YXDB です。 または、SQLite を選択することもできます。
YXDB ストレージ形式を使用するには:
- ツール設定ウィンドウの Alteryx メニューをクリックします
- [Sqlite] が選択されていないことを確認してください。
SQLight ストレージ形式を使用するには:
- ツール設定ウィンドウの Alteryx メニューをクリックします
- [Sqlite] を選択してください。
SQLite | YXDB | |
BLOB | サポートされていない | サポートされている |
空間オブジェクト | サポートされていません |
Python ツールと他のツール間で空間オブジェクトを渡すことをサポートします。 Python ツールから空間オブジェクト出力を作成する場合は、メタデータタグを使用すると便利です。 空間オブジェクト列は、geojson を含む文字列としてpandas DataFrame に読み込まれます。 空間列 (geojson の文字列として表される)を Python ツールから送り返すには、型を SpatialObj として指定し、オプションの 3 番目のパラメーター "'Alteryx.write()" を含める必要があります。 (例: `Alteryx.write(df, 1, {"my_spatial_field": {"type": "SpatialObj"}})`) さらに、"geopandas" のようないくつかのパッケージとその依存関係も含まれており、さらなる空間データを利用するために Python ツールにインポートできます。 |
列の制限 | 制限は 2000 です | 制限なし |
Null 値ノート | 数値/Byte 列に Null 値が含まれる場合は、float64 の倍精度浮動小数点数のデータ型に変換されます。 | YXDB は、numpy を使用して float64 の Null 値をサポートします。NaN と pandas 型 NULL 可能整数を使用した整数型です。 |
行の配置を変更しない場合や、GeoSpatial Python を使用しない場合は、Alteryx では、GeoSpatial データをデータセットから切り取り、Python ツールの後に再結合することをお勧めします。 これは、Alteryx Binary から GeoSpatial テキストへの変換および GeoSpatial テキストからの変換が迅速でないためです。
ファイルまたはディレクトリのインポート
相対パスをどの程度制御したいかに応じて、Alteryx メニューから Alteryx インポート機能を使用するか、インポートコマンドを使用することができます。 Alteryx インポート機能を使用して、既存の Python スクリプトまたは Jupyter Notebook をインポートできます。 相対パスを管理したい場合は、セル内でインポートコマンドを使用してください。 インポートの例としては、インポートコマンドを使用してディレクトリをインポートすること、または Alteryx インポート機能を使用して単一のスクリプトをインポートすることが挙げられます。
Python スクリプト、Jupyter Notebook のインポート
- Alteryx メニューをクリックして、[スクリプトをインポート] を選択します。
- [ファイルを選択] をクリックして
.py
または.ipynb
ファイルに進みます。 - [インポート] をクリックします。
Alteryx はファイルをインポートします。
カーネルメニューを使用
- 処理を停止する: 処理を停止するには、[カーネル] メニューをクリックし、[中断] を選択します。
- 処理を再開する: [カーネル] メニューをクリックし、[再開] オプションを選択してインタラクティブ環境の処理を再開します。
- 処理を再接続する: [カーネル] メニューをクリックし、[再接続] を選択して中間結果のワークブックを消去します。
- [カーネルの変更] は機能しません。
- [シャットダウン] を選択しないことをお勧めします。
ツールからのデータ出力
ツールからのデータ出力には、Alteryx.write を使用してください。
- キャンバス上の他のツールにデータを送信するには、Alteryx.write(<pandas data frame>, <output anchor number>) を使用します。
Alteryx.write(df,1)
- Alteryx.write は pandas データフレームのみに対応します。 データが別の形式の場合は、pandas ライブラリを使用して pandas データフレームに変換してください。 pandas ライブラリーは Designer でプレインストールされており、[pandasをインポート] を使用して、Jupyter Notebook でアクセスすることができます。
- 最大5つのデータフレームを出力アンカーに送信できます。
ベストプラクティス
以下のベストプラクティスは、Python ツールをうまく使用するのに役立ちます。
Engine.WorkflowDirectory などのワークフロー定数を参照する場合は Alteryx.getWorkflowConstant を使用してください。 そうしない場合、コードの実行時に、コマンドの結果または出力が Jupyter Notebook のコマンドに完全に置き換わります。 ワークフロー定数で % wrapper を使用しないでください。 例えば、Engine.WorkflowDirectory を呼び出すには、次のようにします:
from ayx import Alteryx
Alteryx.getWorkflowConstant("Engine.WorkflowDirectory")
トラブルシューティング
Alteryx Designer を開いたときに、以前に保存したワークフローでコードが Python ツールから消えている場合は、ユーザー設定内で自動設定が無効になっていることが原因である可能性があります。 この問題を解決するには:
- [自動設定] を有効にする: これを行うには、[オプション] の下の[ユーザー設定] にアクセスします。[ユーザー設定の編集] > [アドバンス] に移動し、[自動設定を無効にする] の選択を解除します。 以下を参照してください: ユーザー設定または、
- ワークフローを開いた後、Python ツールをクリックせずにワークフローを実行します。 これにより、Python ツールに既存の Python コードが設定されます。
プロダクションモードでマルチバイト文字セット (MBCS) を印刷するには、次の操作を行います:
- [インタラクティブモード] をクリックします。
- Jupyter Notebook の上部付近のセルに次を入力します:
import sys import codecs if sys.stdout.encoding != 'UTF-8': if sys.stdout.encoding != 'UTF-8': sys.stdout=codecs.getwriter('utf-8')(sys.stdout.buffer,'strict') if sys.stderr.encoding != 'UTF-8': if sys.stderr.encoding != 'UTF-8': sys.stderr=codecs.getwriter('utf-8')(sys.stderr.buffer,'strict')
- [プロダクションモード] をクリックします。
- ワークフローを実行します。
空間データを開始するには、次のコードサンプルを使用します。