Free Trial

ナレッジベース

エキスパートから学ぶ。

ツールマスタリー | Python

SaoriG
Alteryx Alumni (Retired)
Created
Python.png

この記事はツールマスタリーシリーズの一部で、Designer ツールの使用に役立つさまざまな活用例をナレッジベースにまとめたものです。ここでは、 Alteryx Designer を習得するための一歩として、Python ツールの使用について深く掘り下げて説明します。 

 

Python は、世界で最も急速に成長しているプログラミング言語  の 1 つであり、基本的なデータ操作からデータサイエンスやソフトウェア開発に至るまで、さまざまなアプリケーションに使用されています。2018.3 のリリースに伴い、待望の Python ツールが登場しました! R ツールと同様に Python ツールを使用すると、Alteryx ワークフローの一部としてコードをシームレスに実行できます。また、このツールを最大限に活用するためには、Python のコーディング知識が必要です。このツールマスタリー記事では、このツールを使用するための基礎を紹介します。

 

最初に Python ツールをキャンバスにドロップすると、ツールの設定ウィンドウに次の画面が表示されます。これは、Pythonツールを新しい入力データソースに接続するたびにワークフローを実行するように通知させるためのものです。これにより、入力データが Pythonツールに取り込まれ、Python コードに取り込むことができます。

 

2018-11-19_8-08-34.png

 

上記の設定ウインドウのテキストで記述されているとおり、 Jupyter Notebook インターフェースを起動して実行するには、ひたすら待つのみです。Designer のインスタンスで Python ツールを初めて開いたときに Jupyter Notebook インターフェースが提供されるまでに数秒かかります。最初に表示されるメッセージは、Jupyter Notebook インターフェースに置き換えられます。

 

 2018-11-19_8-10-31.png

 

 

Jupyter Notebook の一般的な紹介については、初心者向けガイド  のドキュメントをご覧ください。 

 

 

Python ツールを使用する最初のコーディング手順は、Alteryx API パッケージをインポートすることです。これにより、Alteryx Engine と Python ツールの間でデータを渡すことができます。Alteryx Engine からデータを読み込むか、Python ツールから Engine にデータをプッシュする場合、コードは次のように開始する必要があります。

 

from ayx import Alteryx

 

このコードは非常に基本的なものであるため、Python ツールの最初のセルに自動的に入力されます。

 

2018-11-19_8-10-31.png

 

 

Python ツールで個別のセルを実行するには、上部のツールバーの再生ボタンをクリックするか、キーボードショートカットの Shift + Enter を使用します。

 

2018-11-19_8-14-33.png

 

 

Python ツールには、ayx パッケージに加えて、既定で読み込まれるいくつかの python パッケージが付属しています。これらのパッケージは ヘルプ & ドキュメント にリストされており、主にデータサイエンスに関連しています。これらのプリインストールされた各パッケージの機能について学べる素晴らしい 記事 もあります。既にインストールされているパッケージを読み込むには、Alteryx の外部で Python スクリプトを作成する場合と同様に、import コマンドを使用します。既定でツールに含まれていない python ライブラリをインストールする場合は、Package.installPackages() 関数を使用します。

 

 2018-11-19_8-18-33.png

 

 

 セル番号が通常表示される箇所にある「*」アスタリスクは、セルが現在実行されていることを意味します。

 

パッケージのインストールが成功すると、インストールされているパッケージの依存関係とバージョンに関連する次のメッセージが表示されます。

 

2018-11-19_8-28-24.png

 

 

オプション: このデモに沿って進みたい場合は、この記事に添付されている Iris データセット (iris.yxdb) をダウンロードしてください。

 

Alteryx の入力アンカーを使用してデータを取り込む場合は、ワークフローを最初に実行して notebook で受信データを利用できるようにする必要があります。ワークフローを実行した後、Alteryx.read() 関数を使用してデータを Python に取り込むことができます。

この関数の唯一の引数は、読み取り中の特定の接続です。R ツールと同様に、この引数は文字列であり、引用符で囲む必要があります。

 2018-07-30_16-03-02.png

このデータストリームを変数名のデータとして読み込むには、コードは次のようになります。

 

data = Alteryx.read("#1")

 

2018-11-19_8-31-47.png

 

 

ワークフロー全体を実行する前にデータを読み取ろうとすると、おそらく FileNotFoundError というエラーメッセージが表示されます。

 

2018-08-08_16-19-00.png

 

解決策は、ワークフローを保存してからワークフローを実行することです。次回、再生ボタンを使用してセル内のコードを実行すると、エラーが解決されます。

 

Python ツールに読み込まれたものはすべて、Pandas データフレーム として読み込まれます。これにより、Python でのデータ処理の柔軟性が向上します。データ形式を読み込んだ後に変更できますが、出力を Pandas data frame に戻す必要があります。

 

データの取り込みが完了したので、ここから分析したいと思います。まず、save/checkpoint ボタンの横にあるプラスアイコンをクリックして新しいセルを作成するか、キーボードショートカット B を使用して現在のセルの下にセルを追加します。

 

2018-11-19_8-32-46.png

 

 

他の便利なセルおよび notebook 機能も、このツールバーの Insert Cell Below ボタンの右側にあります。 ボタンは左から順番に、Save、Add a Cell 2018-08-07_12-13-14.png、 Cut Cell(s)、2018-08-07_12-13-57.pngCopy Cell(s)、  2018-08-07_12-15-11.png Paste Cell(s)、 2018-08-07_12-16-07.pngMove Cell(s) UP、 2018-08-07_12-16-36.pngMove Cell(s) Down、 2018-08-07_12-17-34.pngRun 2018-08-07_13-24-47.png、 Stop、 2018-08-07_13-27-59.pngRestart the Kernel 2018-08-07_14-08-08.png、 Restart the Kernel and Rerun the Notebook 2018-08-07_14-09-41.pngこれらのボタンにはすべて、キーボードショートカットが関連付けられています。Jupyter Notebook のキーボードショートカットの完全なリストを表示するには、上部のツールバーの Help > Keyboard Shortcuts に移動します。

 

 

このデモでは、アイリスの花のデータセットに対してクラスター分析を実行します。新しいセルで Sci-kit learn Python  モジュール  (Alteryx Python Tool Installation に含まれています) から KMeans 関数 を読み込み、クラスターの作成と結果のクラスターラベルを印刷するための簡単なコードを記述します。

 

2018-08-07_11-27-41.png

 

これで、 matplotlib.pyplot python ライブラリ (既定で Python ツールにも含まれています) を使用してクラスターを可視化できます。

 

opt2.png

 

最後に、Python ツールからの出力の書き込みは、with Alteryx.write() 関数を使用して実行できます。この関数は現在、Pandas data frame でのみサポートされています。データフレーム以外のものを書き込もうとすると、次の TypeError が発生します。

 

2018-08-07_11-45-24.png

 

このエラーは、出力を Pandas データフレーム に変換することで解決できます。まだ Pandas データフレーム に精通していない場合は、Pandas データ構造の入門  や 10 分間で Pandas ドキュメントを学習  が役立つでしょう。 Python ツールで Alteryx.write() を使用してコードを記述したら、ワークフロー全体を実行する必要があります。ツールの出力アンカーで結果を確認します。

 

2018-08-07_11-56-22.png

 

あとはワークフローを実行するだけで、Python ツール出力のアンカー 1 に結果が表示されます。

 

この概要で、Python ツールを使ったデータの読み取り、書き込み、処理を快適に行えることを願っています。後は想像力を働かせるだけです!

 

 

知っておくべきこと&今後のアップデート

 

  • 2018.4 以降、外部で作成された python スクリプトと Jupyter notebooks を読み込むことができます。
  • メタデータは、Python ツールから出力されるデータのダウンストリームツールに一貫して入力されません。
  • Python ツールへのデータの読み取り時に、ブールから整数への暗黙的なデータ型変換があります。同様に、ツールからの書き込み時に、ブールから整数への別の暗黙的なデータ型変換があります。
  • 2018.4 以降、出力を書き込むときに列のデータ型を設定できるようになりました。
  • 現在、Pandas Data frames のみが読み取りと書き込みでサポートされています。現在、プロットを書き出すことも、空間オブジェクトを読み込んで書き出すこともできません。
  • 質問定数は現在サポートされていません。

 

このツールに関するご意見がありましたら、製品のアイデアページ に投稿してください。ツールの機能や制限に関するみなさんのアイデアを心よりお待ちしています。

 

これで、Pythonツールのエキスパートレベルの習熟度が得られました。他にもユースケースをご存知の場合は、以下のコメント欄でお知らせください!もうツールマスターですか?あなたの作成したクリエイティブなツールをツールマスタリーシリーズに掲載したい場合は、 community@alteryx.com  までお知らせください。

 

Twitter で Alteryx  を フォロー して Tool Tuesday最新の投稿をご確認ください!  Designer ツールのすべてをマスターしたい方は、 Eメールでのお知らせに 登録 されることをお薦めします。

添付
コメント
YoshiroFujimori
メテオール

このページでPythonツールの勉強を始めました。

上記の手順に従い、「ツールに含まれていない python ライブラリをインストールする」ために以下のセルを実行すると

Package.installPackages(['nltk'])

正常にインストールされると

Successfully installed nktk-3.4 singledispatch-3.4.0.3

などと出るべきところ、以下のエラーが出ます。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 829: invalid start byte

 

"0x83 utf-8 python alteryx" で ネット検索したところ、Classmethodさんの下記サイトで

https://dev.classmethod.jp/articles/alteryx-python-tool-admin-nonadmin/

Admin版のAlteryx Designerを一般ユーザで利用すると、インストールするためにパッケージのファイルを追加する権限がないため、エラーとなります。

...

インストールに失敗したエラーメッセージを出力しようとして、そのprintがUnicodeDecodeErrorを吐いています。 そのため、元のエラーメッセージを見逃しがちなのでご注意下さい。

これを回避するには、一度Alteryx Designerを管理者として起動して、パッケージのインストールのみを行っておきます。

とあったので、言われた通り管理者権限でDesignerを起動したところ、正常にインストールできました。

他の方のご参考として記載しておきます。