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)

条件反転
トランザクション型から縦型へデータを変換する。

利用例

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''')

基本例

eggmilk 項目の値が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

関連メソッド