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のデータをソートする方法を解説します。

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

まずは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

ソートする

ソートは sort_values メソッドを使います。

tbl.sort_values(['sepal_length', 'sepal_width'])

この状態でデータを確認してみます。 head メソッドは最初の行から取得します。

sorttbl.head(10)
sepal_length sepal_width petal_length petal_width species
0 4.3 3.0 1.1 0.1 setosa
1 4.4 2.9 1.4 0.2 setosa
2 4.4 3.0 1.3 0.2 setosa
3 4.4 3.2 1.3 0.2 setosa
4 4.5 2.3 1.3 0.3 setosa
5 4.6 3.1 1.5 0.2 setosa
6 4.6 3.2 1.4 0.2 setosa
7 4.6 3.4 1.4 0.3 setosa
8 4.6 3.6 1.0 0.2 setosa
9 4.7 3.2 1.6 0.2 setosa

逆順は tail メソッドを使います。

sorttbl.tail(5)
sepal_length sepal_width petal_length petal_width species
145 7.7 2.6 6.9 2.3 virginica
146 7.7 2.8 6.7 2.0 virginica
147 7.7 3.0 6.1 2.3 virginica
148 7.7 3.8 6.7 2.2 virginica
149 7.9 3.8 6.4 2.0 virginica

昇順降順を指定する

ascending オプションで並び順を細かく指定できます。

sorttbl = tbl.sort_values(['sepal_length', 'sepal_width'], ascending=[False, True])

これでデータを確認すると、データの並び順が変わっているはずです。

sepal_length sepal_width petal_length petal_width species
0 7.9 3.8 6.4 2.0 virginica
1 7.7 2.6 6.9 2.3 virginica
2 7.7 2.8 6.7 2.0 virginica
3 7.7 3.0 6.1 2.3 virginica
4 7.7 3.8 6.7 2.2 virginica
5 7.6 3.0 6.6 2.1 virginica
6 7.4 2.8 6.1 1.9 virginica
7 7.3 2.9 6.3 1.8 virginica
8 7.2 3.0 5.8 1.6 virginica
9 7.2 3.2 6.0 1.8 virginica

まとめ

データのソートは基本的な操作になります。sort_valuesを使いつつ、オプションで細かく条件指定を行ってください。

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