5.63. mtraflg クロス表をトランザクション項目に変換¶
f=
パラメータで指定した項目値がNULL値かどうかをチェックし、
NULL値以外であれば,それらの項目名を1つのアイテムとして連結し
新しいベクトル項目(トランザクション項目とも呼ぶ)として出力する。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
a= : 型=str , 必須
トランザクション項目名を指定する。
f= : 型=str , 必須
ここで指定された項目値(複数項目指定可)をチェックし、トランザクションデータを作成する。(r
オプションの指定がある時はトランザクションデータから項目名として抜き出す値のリスト)
delim= : 型=str , 任意(default=)
ここで指定した文字をトランザクション項目のアイテム間の区切りとする(省略時はスペース)。文字列の指定はできない。1バイト文字のみ指定可能。
r= : 型=bool , 任意(default=False)
条件反転トランザクション型から縦型へデータを変換する。
共通パラメータ¶
i= , o= , assert_diffSize= , assert_nullin= , assert_nullout= , nfn= , nfno= , x= , tmppath= , precision=
利用例¶
importと入力データ(CSV)の準備
1import nysol.mcmd as nm 2 3with open('dat1.csv','w') as f: 4 f.write( 5'''customer,egg,milk 6A,1,1 7B,,1 8C,1, 9D,1,1 10''')
基本例
egg
と milk
項目の値がNULL値以外なら、それら項目名を要素としたベクトルを作成する。
1nm.mtraflg(f="egg,milk", a="transaction", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# customer,transaction 4# A,egg milk 5# B,milk 6# C,egg 7# D,egg milk
基本例2
出力された結果を r=True
をつけて再実行し元に戻す。
1nm.mtraflg(r=True, f="egg,milk", a="transaction", i="rsl1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# customer,egg,milk 4# A,1,1 5# B,,1 6# C,1, 7# D,1,1
区切り文字の指定
区切り文字を-(ハイフン)で連結し、 transaction
という項目名で出力する。
1nm.mtraflg(f="egg,milk", a="transaction", delim="-", i="dat1.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# customer,transaction 4# A,egg-milk 5# B,milk 6# C,egg 7# D,egg-milk
関連メソッド¶
mvsort ベクトル要素のソート : トランザクションデータはベクトル型データを処理する一連の処理コマンド(
mv
から始まる)によって加工できる。mcross クロス集計 : トランザクションデータとしてではなく、個々のアイテムを独立した項目として出力し、その出現件数を出力する。
mtra 縦型データをベクトル項目に変換 : 項目の値をアイテムとしてトランザクションデータを作成する。
mtrafld クロス表をトランザクション項目に変換 : 「項目名=値」の形式でトランザクションデータを作成する。