Help us understand the problem. What is going on with this article?

casTableオブジェクトをコピーして検索条件を変更する

More than 1 year has passed since last update.

SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。

機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はそのテーブルオブジェクト(Python版)をコピーして様々な条件を指定する方法を紹介します。

partitionメソッドを使う

すでに設定を行ったcasTableに対してpartitionメソッドを使うとテーブルがコピーされます。

sub = iris.partition()

このsubの内容を見ると、テンポラリテーブルなのが分かります。tableNameが自動生成されたものになっています。

§ caslib
CASUSER(dev@sas.com)
§ tableName
_T_WIVDGHGP_R6K2BW26_TFCRZAPN74
§ rowsTransferred
0
§ shuffleWaitTime
0.0
§ minShuffleWaitTime
1e+300
§ maxShuffleWaitTime
0.0
§ averageShuffleWaitTime
0.0
§ casTable
CASTable('_T_WIVDGHGP_R6K2BW26_TFCRZAPN74', caslib='CASUSER(dev@sas.com)')

データの取りだし方

後は sub.casTable でデータが取得できます。

sub.casTable.fetch(to=3)
SepalLength SepalWidth PetalLength PetalWidth Name length_factor
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa

このオブジェクトに条件を設定しても、元のテーブルオブジェクトには影響しません。

iris.set_params('where', 'Name = "Iris-versicolor"')
sub.casTable.has_params('where')
-> False

プログラムをしていて、同じ条件を使い回したいというケースはよくあると思います。partitionを使うことで、元のテーブルには影響を与えずに条件を変更したり、データの確認を行えるようになります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away