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)
条件反転トランザクション項目を縦型データに変換する。
共通パラメータ¶
i= , o= , assert_diffSize= , assert_nullkey= , assert_nullin= , assert_nullout= , nfn= , nfno= , x= , q= , tmppath= , precision=
利用例¶
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
関連メソッド¶
mvsort ベクトル要素のソート : トランザクションデータは、ベクトル型データを処理する一連の処理コマンド(
mv
から始まる)によって加工できる。mcross クロス集計 : トランザクションデータとしてではなく、個々のアイテムを独立した項目として出力し、その出現件数を出力する。
mtrafld クロス表をトランザクション項目に変換 : 「項目名=値」の形式でトランザクションデータを作成する。
mtraflg クロス表をトランザクション項目に変換 : 項目名をアイテムとしてトランザクションデータを作成する。