5.36. mnullto NULL値の置換¶
f=
パラメータで指定した項目について
NULL値を v=
パラメータで指定した文字列に置換する。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
f= : 型=str , 必須
ここで指定した項目(複数項目指定可)のNULL値が置換される。
v= : 型=str , 任意(default=)
ここで指定した文字列にNULL値を置換する。
p= : 型=bool , 任意(default=False)
前の行の値で置換する。v=
パラメータと同時に指定できない。
k= : 型=str , 任意(default=キーブレイク処理しない)
p
オプションを指定した時にのみ意味があり、ここで指定した項目値の単位で置換処理を行なう。
s= : 型=str , 任意(default=)
p
オプションを指定した時にのみ意味があり、k=
項目内での並び順を指定する。
O= : 型=str , 任意(default=)
NULL値以外を置換したい場合は、ここで値を指定する。
A= : 型=bool , 任意(default=False)
このオプションにより、指定した項目を置き換えるのではなく、A
オプションを指定した場合は必ず、:(コロン)で新項目名を指定する必要がある。例)f=数量:置換後の項目名
共通パラメータ¶
i= , o= , assert_diffSize= , 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,birthday 6A,19690103 7B, 8C,19500501 9D, 10E, 11''') 12 13with open('dat2.csv','w') as f: 14 f.write( 15'''id,date 16A,19690103 17B, 18C,19500501 19D, 20E, 21''') 22 23with open('dat3.csv','w') as f: 24 f.write( 25'''id,seq,val 26A,1,1 27A,3,2 28A,2, 29B,2,3 30B,1, 31''')
基本例
birthday
項目がNULL値の場合は "no value"
に置換する。
1nm.mnullto(f="birthday", v="no value", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# customer,birthday 4# A,19690103 5# B,no value 6# C,19500501 7# D,no value 8# E,no value
NULL値以外の置換
birthday
項目がNULL値の場合は、 "no value"
値がある場合は "value"
置換し entry
という項目名に変更して出力する。
1nm.mnullto(f="birthday:entry", v="no value", O="value", i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# customer,entry 4# A,value 5# B,no value 6# C,value 7# D,no value 8# E,no value
新しい項目を出力
birthday
項目がNULL値の場合は "no value"
、値がある場合は "value"
に置換し entry
という項目名で出力する。
1nm.mnullto(f="birthday:entry", v="no value", O="value", A=True, i="dat1.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# customer,birthday,entry 4# A,19690103,value 5# B,,no value 6# C,19500501,value 7# D,,no value 8# E,,no value
前行の値に置換
1nm.mnullto(f="val", p=True, i="dat3.csv", o="rsl4.csv").run() 2### rsl4.csv の内容 3# id,seq,val 4# A,1,1 5# A,3,2 6# A,2,2 7# B,2,3 8# B,1,3
キー項目を指定した場合の例
1nm.mnullto(k="id", s="seq", f="val", p=True, i="dat3.csv", o="rsl5.csv").run() 2### rsl5.csv の内容 3# id%0,seq%1,val 4# A,1,1 5# A,2,1 6# A,3,2 7# B,1, 8# B,2,3
関連メソッド¶
mdelnull NULL値行の削除 : 置換ではなく、行を削除したい場合はこちら。
mchgstr 文字列の置換 : NULL値でなく文字列を置換したい場合に使用する。