5.16. mdelnull NULL値行の削除¶
f=
パラメータで指定した項目について、NULL値が含まれる行を削除(撰択)する。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
f= : 型=str , 必須
NULL値の検索対象となる項目名(複数項目指定可)を指定する。
k= : 型=str , 任意(default=キーブレイク処理しない)
削除(撰択)する単位となるキー項目名(複数項目指定可)を指定する。
u= : 型=str , 任意(default=出力しない)
不一致データ出力データを指定する。
bufcount= : 型=str , 任意(default=)
バッファのサイズ数を指定する。
F= : 型=bool , 任意(default=False)
項目間AND条件f=
パラメータで複数項目を指定した場合、その全ての値がNULL値の行を削除(撰択)する。
r= : 型=bool , 任意(default=False)
条件反転削除ではなく選択する。
R= : 型=bool , 任意(default=False)
レコード間AND条件k=
パラメータを指定した場合、その全ての行がNULL値の行を削除(撰択)する。
共通パラメータ¶
i= , o= , bufcount= , assert_diffSize= , assert_nullkey= , 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,quantity,amount 6A,1,10 7A,,20 8B,1,15 9B,3, 10C,1,20 11''') 12 13with open('dat2.csv','w') as f: 14 f.write( 15'''customer,quantity,amount 16A,1,10 17A,, 18B,1,15 19B,3, 20C,1,20 21''')
基本例
quantity
と amount
項目がNULL値の行を削除する。
NULL値の行は oth.csv
に出力する。
1nm.mdelnull(f="quantity,amount", u="oth.csv", i="dat1.csv", o="rsl1.csv").run() 2### oth.csv の内容 3# customer,quantity,amount 4# A,,20 5# B,3, 6### rsl1.csv の内容 7# customer,quantity,amount 8# A,1,10 9# B,1,15 10# C,1,20
NULL値の行を選択
r=True
を指定することで、削除ではなく選択することになる。
1nm.mdelnull(f="quantity,amount", r=True, i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# customer,quantity,amount 4# A,,20 5# B,3,
キー項目でのNULL値の行の削除
k=
を指定することで、集計キー単位で削除することになる。
以下では customer
項目を単位にして、 quantity
と amount
項目にNULL値が一つでも含まれていれば削除する。
1nm.mdelnull(k="customer", f="quantity,amount", i="dat1.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# customer%0,quantity,amount 4# C,1,20
項目間AND条件の例
quantity
と amount
項目の両方がNULL値の行を削除する。
1nm.mdelnull(f="quantity,amount", F=True, i="dat2.csv", o="rsl4.csv").run() 2### rsl4.csv の内容 3# customer,quantity,amount 4# A,1,10 5# B,1,15 6# B,3, 7# C,1,20
レコード間AND条件の例
customer
項目を単位にして、 quantity
項目が全てNULL値の行を削除する。
1nm.mdelnull(k="customer", f="quantity", R=True, i="dat1.csv", o="rsl5.csv").run() 2### rsl5.csv の内容 3# customer%0,quantity,amount 4# A,1,10 5# A,,20 6# B,1,15 7# B,3, 8# C,1,20
関連メソッド¶
mnullto NULL値の置換 : NULL値を含む行を削除するのではなく、NULL値を指定の文字列に変換する。