Python
SAS
AI

casTableを操作する方法

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


ソートする

テーブルをソートする方法です。sort_valuesを使って別なオブジェクトを作ります。

sorttbl = tbl.sort_values(['SepalLength', 'SepalWidth'])

データを確認します。ソートされているのが分かります。

sorttbl.head(5)

SepalLength
SepalWidth
PetalLength
PetalWidth
Name

0
4.3
3.0
1.1
0.1

1
4.4
2.9
1.4
0.2

2
4.4
3.0
1.3
0.2

3
4.4
3.2
1.3
0.2

4
4.5
2.3
1.3
0.3


最後のデータを確認する

headは頭からのデータを出しますが、tailは逆に最後のデータを出力します。

sorttbl.tail(5)

SepalLength
SepalWidth
PetalLength
PetalWidth
Name

145
7.7
2.6
6.9
2.3

146
7.7
2.8
6.7
2.0

147
7.7
3.0
6.1
2.3

148
7.7
3.8
6.7
2.2

149
7.9
3.8
6.4
2.0


一部のカラムのデータだけを見る

カラムを取り出して、そのカラムのデータだけを閲覧できます。

col = sorttbl['SepalWidth']

col.head(3)

1カラムのデータだけ見られます。

0    3.8

1 2.6
2 2.8
Name: SepalWidth, dtype: float64

複数のカラムを指定することもできます。

cols = sorttbl[['SepalWidth', 'PetalWidth', 'Name']]

cols.head(3)

これで3つのカラムが取れます。

SepalWidth
PetalWidth
Name

0
3.8
2.0
Iris-virginica

1
2.6
2.3
Iris-virginica

2
2.8
2.0
Iris-virginica

locメソッドを使うと、あるカラムからあるカラムまでのデータを取得できます。

sorttbl.loc[:, 'SepalLength':'PetalLength'].head()

この実行結果は以下のようになります。

SepalLength
SepalWidth
PetalLength

0
7.9
3.8
6.4

1
7.7
2.6
6.9

2
7.7
2.8
6.7

3
7.7
3.0
6.1

4
7.7
3.8
6.7

icocはカラム名ではなくインデックスで指定します。0番目のカラムから3つのカラムといった指定をします。

sorttbl.iloc[:, 0:3].head()

SepalLength
SepalWidth
PetalLength

0
7.9
3.8
6.4

1
7.7
2.6
6.9

2
7.7
2.8
6.7

3
7.7
3.0
6.1

4
7.7
3.8
6.7

ixでは名前とカラム数を組み合わせます。

sorttbl.ix[:, 0:'PetalLength'].head()

SepalLength
SepalWidth
PetalLength

0
7.9
3.8
6.4

1
7.7
2.6
6.9

2
7.7
2.8
6.7

3
7.7
3.0
6.1

4
7.7
3.8
6.7


検索条件を指定する

whereに相当するデータの取得方法です。検索条件をPythonのコードとして表現します。

expr = sorttbl.PetalLength > 6.5

newtbl = sorttbl[expr]
newtbl.head()

これで検索条件にマッチするデータだけを取り出せます。

SepalLength
SepalWidth
PetalLength
PetalWidth
Name

0
7.7
2.6
6.9
2.3
Iris-virginica

1
7.7
2.8
6.7
2.0
Iris-virginica

2
7.7
3.8
6.7
2.2
Iris-virginica

3
7.6
3.0
6.6
2.1
Iris-virginica

同じ条件は以下のようにも書けます。

newtbl = sorttbl[sorttbl.PetalLength > 6.5]


検索条件の組み合わせ

AND条件の書き方です。

newtbl = sorttbl[(sorttbl.PetalLength > 6.5) & (sorttbl.PetalWidth > 2.0)]

これで二つの条件による絞り込みができます。

SepalLength
SepalWidth
PetalLength
PetalWidth
Name

0
7.7
2.6
6.9
2.3
Iris-virginica

2
7.7
3.8
6.7
2.2
Iris-virginica

3
7.6
3.0
6.6
2.1
Iris-virginica


ViyaのPythonライブラリはデータベースをラッピングし、柔軟にデータの絞り込みや並び替え、検索条件を指定できます。14日間のトライアルも提供していますので、ぜひお試しください。

SAS for Developers | SAS