5.60. mtonull NULL値へ置換

f= パラメータで指定した項目を対象に、 v= パラメータで指定した値にマッチした項目データをNULL値に置換する。 マッチの方法としては完全一致(デフォルト)と部分文字列マッチ( sub オプション)を選択できる。

パラメータ

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

入力データを指定する。

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

出力データを指定する。

f= : 型=str , 必須

置換対象の項目名リスト(複数項目指定可)を指定する。

v= : 型=str , 必須

f= パラメータで指定した項目の値が、ここで指定した文字列リスト(複数項目指定可)
のいずれかにマッチすればNULL値に置換する。

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

部分文字列マッチを行う。

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

ワイド文字としてマッチを行う。

共通パラメータ

i= , o= , assert_diffSize= , assert_nullin= , nfn= , nfno= , x= , tmppath= , precision=

利用例

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

 1import nysol.mcmd as nm
 2
 3with open('dat1.csv','w') as f:
 4  f.write(
 5'''item,quantity,price
 6A,0,1
 7B,1,0
 8C,2,200
 9D,3,0
10E,0,298
11''')
12
13with open('dat2.csv','w') as f:
14  f.write(
15'''item,price
16fruit:apple,100
17fruit:peach,250
18fruit:grape,300
19fruit:pineapple,450
20fruit:orange,500
21''')

基本例

quantityprice 項目が0をNULL値に置換する。

1nm.mtonull(f="quantity,price", v="0", i="dat1.csv", o="rsl1.csv").run()
2### rsl1.csv の内容
3# item,quantity,price
4# A,,1
5# B,1,
6# C,2,200
7# D,3,
8# E,,298

NULL値に置換する数字の指定

quantityprice 項目が0もしくは1をNULL値に置換する。

1nm.mtonull(f="quantity,price", v="0,1", i="dat1.csv", o="rsl2.csv").run()
2### rsl2.csv の内容
3# item,quantity,price
4# A,,
5# B,,
6# C,2,200
7# D,3,
8# E,,298

部分文字列マッチでの置換

quantityprice 項目が0を含めばNULL値に置換する。

1nm.mtonull(sub=True, f="quantity,price", v="0", i="dat1.csv", o="rsl3.csv").run()
2### rsl3.csv の内容
3# item,quantity,price
4# A,,1
5# B,1,
6# C,2,
7# D,3,
8# E,,298

指定の文字列の置換

item 項目に apple、orange、pineapple を含む値をNULL値に置換する。

1nm.mtonull(f="item", v="apple,orange,pineapple", sub=True, i="dat2.csv", o="rsl4.csv").run()
2### rsl4.csv の内容
3# item,price
4# ,100
5# fruit:peach,250
6# fruit:grape,300
7# ,450
8# ,500

関連メソッド