LoginSignup
0
0

More than 3 years have passed since last update.

CASTableの絞り込み条件をプログラマブルに指定する

Posted at

SAS ViyaはAIプラットフォームです。PythonやJava、Rなどの言語を通して利用できます。そのSAS Viyaの中で使われているのがCASTableというテーブルオブジェクトです(CASはCloud Analytic Servicesの略です)。今回はCASTableでデータを絞り込む、where句のような指定をプログラミングから行う方法を解説します。

データベースからテーブルを取得する

まずはSAS Viyaに接続します。

import swat
conn = swat.CAS('server-name.mycompany.com', 5570, 'username', 'password')

次にCASTableを取得します。今回はIRISデータのCSVを利用します。

tbl = conn.loadtable('data/iris.csv', caslib='casuser').casTable

データを絞り込む

例えばpetal_lengthが6.5より大きいデータだけを取得します。

expr = tbl.petal_length > 6.5

このデータを出力します。

expr.head()

これはあくまでも条件を保存しただけの結果になります。

0    0.0
1    1.0
2    1.0
3    0.0
4    1.0
Name: _gt_0_, dtype: float64

では、この絞り込み条件をCASTableに適用します。

newtbl = tbl[expr]
newtbl.head()

そうすると絞り込まれたデータが表示できます。

sepal_length sepal_width petal_length petal_width species
0 7.7 2.6 6.9 2.3 virginica
1 7.7 2.8 6.7 2.0 virginica
2 7.7 3.8 6.7 2.2 virginica
3 7.6 3.0 6.6 2.1 virginica

条件の指定法について

条件は次のようにキーとして渡すこともできます。

newtbl = tbl[tbl.petal_length > 6.5]
newtbl.head()
sepal_length sepal_width petal_length petal_width species
0 7.7 2.6 6.9 2.3 virginica
1 7.7 2.8 6.7 2.0 virginica
2 7.7 3.8 6.7 2.2 virginica
3 7.6 3.0 6.6 2.1 virginica

条件を追加する

さらに絞り込み条件を追加することもできます。

newbl2 = newtbl[newtbl.petal_width < 2.2]
newtbl2.head()
sepal_length sepal_width petal_length petal_width species
0 7.7 2.8 6.7 2.0 virginica
1 7.6 3.0 6.6 2.1 virginica

条件を詳細にする

条件は計算処理を指定できます。

tbl[(tbl.petal_length + tbl.petal_width) * 2 > 17.5].head()
sepal_length sepal_width petal_length petal_width species
0 7.7 2.6 6.9 2.3 virginica
1 7.7 3.8 6.7 2.2 virginica

次のように、文字列を変換した上で検索なんて指定も可能です。

tbl[tbl.species.str.upper().str.startswith('SET')].head()
sepal_length sepal_width petal_length petal_width species
0 5.8 4.0 1.2 0.2 setosa
1 5.7 3.8 1.7 0.3 setosa
2 5.7 4.4 1.5 0.4 setosa
3 5.5 3.5 1.3 0.2 setosa
4 5.5 4.2 1.4 0.2 setosa

まとめ

SAS ViyaのCASTableを使えば、SQLのような特殊な書き方を覚えずにPythonプログラミングの範囲で記述できます。条件をダイナミックに変更したり、インタラクティブに分析するのも容易です。ぜひお試しください。

SAS for Developers | SAS

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0