SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。
機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はそのテーブルオブジェクト(Python版)で情報を絞って取得する方法を紹介します。
テーブルの作り方
テーブルはCSV、HTML、他のデータベースなどから作れます。
out = sess.upload('Jupyter_Saved_Work/Data/iris.csv')
ファイルをアップロードした後、casTableとして取得します。
tbl = out.casTable
絞り込み条件をPythonで書く
casTableではSQLではなく、Pythonのコードを使ってデータの絞り込みを行えます。
tbl2 = tbl[tbl.SepalLength > 6.0]
複数条件の場合は & で繋ぎます。
tbl2 = tbl[(tbl.SepalLength > 6.0) & (tbl.PetalLength < 5.0)]
casTableの基底プロパティとぶつかった場合
例えばNameというプロパティはcasTableオブジェクトの基底プロパティです。この場合は ['Name']
といった形で指定します。
tbl2 = tbl[tbl['Name'] != 'Iris-setosa']
もし tbl.Name として指定すると以下のようなエラーが出ます。
tbl2 = tbl[tbl.Name != 'Iris-setosa']
エラーメッセージです。
KeyError Traceback (most recent call last)
<ipython-input-31-035de5eb5d01> in <module>()
----> 1 tbl2 = tbl[tbl.Name != 'Iris-setosa']
/opt/sasinside/anaconda3/lib/python3.6/site-packages/swat/cas/table.py in __getitem__(self, key)
7578
7579 # Everything else
-> 7580 raise KeyError(key)
7581
7582 def groupby(self, by, axis=0, level=None, as_index=True, sort=True,
KeyError: True
WHERE句を書かず、SQLを意識せずにデータの絞り込みや閲覧ができるのは便利ではないでしょうか。Pythonコードとの親和性も高いので、プログラマブルにデータ探索が実現できます。