LoginSignup
0
0

More than 5 years have passed since last update.

casTableを操作する方法

Last updated at Posted at 2018-11-01

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

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