5.61. mtra 縦型データをベクトル項目に変換

f= パラメータで指定した項目値をアイテムとし、それらのアイテムを連結し新しいベクトル項目(トランザクション項目とも呼ぶ)として出力する。 アイテムの区切り文字は delim= パラメータで指定する。

パラメータ

i= : 型=str , 任意(default=標準入力)

入力データを指定する。

o= : 型=str , 任意(default=標準出力)

出力データを指定する。

f= : 型=str , 必須

ここで指定した項目(複数項目指定可)の値がアイテムとして連結されトランザクション項目となる。
NULL値は無視される。

s= : 型=str , 任意(default=)

ここで指定した項目(複数項目指定可)で並べ替えられた後、変換が行われる。

k= : 型=str , 任意(default=キーブレイク処理しない)

文字列パターンの単位となる項目名(複数項目指定可)リスト。
r オプションが指定された時は指定できない。

delim= : 型=str , 任意(default=)

ここで指定した文字を区切り文字とする(省略時はスペース)。

r= : 型=bool , 任意(default=False)

条件反転
トランザクション項目を縦型データに変換する。

利用例

importと入力データ(CSV)の準備

 1import nysol.mcmd as nm
 2
 3with open('dat1.csv','w') as f:
 4  f.write(
 5'''customer,item
 6A,a
 7A,b
 8B,c
 9B,d
10B,e
11''')

基本例

customer を単位に item をスペース区切りで結合し、 transaction という項目名で出力する。

1nm.mtra(k="customer", f="item:transaction", i="dat1.csv", o="rsl1.csv").run()
2### rsl1.csv の内容
3# customer%0,transaction
4# A,a b
5# B,c d e

アイテムの区切り文字を-(ハイフン)で実行

1nm.mtra(k="customer", f="item:transaction", delim="-", i="dat1.csv", o="rsl2.csv").run()
2### rsl2.csv の内容
3# customer%0,transaction
4# A,a-b
5# B,c-d-e

アイテムを降順に並べ替えてから変換

1nm.mtra(k="customer", s="item%r", f="item:transaction", i="dat1.csv", o="rsl3.csv").run()
2### rsl3.csv の内容
3# customer%0,transaction
4# A,b a
5# B,e d c

関連メソッド