5.23. mjoin 参照ファイルの項目結合¶
k=
パラメータで指定した入力データの項目値と参照データの項目値を比較し、
同じ値を持つ f=
パラメータで指定した参照データの項目値を結合する。
参照データのキー項目は単一化されている必要がある。
参照データに同じキー項目の値が複数ある場合は、 mnjoin を利用すればよい。
また、 f=
を省略すると、参照データのキー項目以外全ての項目を結合する。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
k= : 型=str , 必須
ここで指定した入力データの項目とK=
パラメータで指定された参照データの項目が同じ行の項目結合が行われる。NULL値は,参照データのK=
で指定した項目のどの値にもマッチしない値として扱われる。
f= : 型=str , 任意(default=全項目)
結合する参照データ上の項目名リストを指定する。省略するとキー項目を除いた全ての項目が結合される。
m= : 型=str , 任意(default=標準入力)
参照データを指定する。このパラメータが省略された時には標準入力が用いられる。(i=
指定ありの場合)
K= : 型=str , 任意(default=k=と同一項目名)
参照データ上の突き合わせる項目名リストここで指定した参照データの項目とk=
パラメータで指定された入力データの項目が同じ行の項目結合が行われる。NULL値は,入力データのk=
で指定した項目のどの値にもマッチしない値として扱われる。参照データ上にk=
パラメータで指定した入力データ上の
n= : 型=bool , 任意(default=False)
参照データにない入力データをNULL値として出力するフラグ。
N= : 型=bool , 任意(default=False)
入力データにない参照データをNULL値として出力するフラグ。
共通パラメータ¶
i= , o= , assert_diffSize= , assert_nullkey= , assert_nullin= , assert_nullout= , 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'''item,date,price 6A,20081201,100 7A,20081213,98 8B,20081002,400 9B,20081209,450 10C,20081201,100 11''') 12 13with open('ref1.csv','w') as f: 14 f.write( 15'''item,cost 16A,50 17B,300 18E,200 19''')
基本例
入力ファイルにある item
項目と、
参照ファイルにある item
項目を比較し同じ値の場合、 cost
項目を結合する。
1nm.mjoin(k="item", f="cost", m="ref1.csv", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# item%0,date,price,cost 4# A,20081201,100,50 5# A,20081213,98,50 6# B,20081002,400,300 7# B,20081209,450,300
未結合データ出力
入力ファイルにある item
項目と、
参照ファイルにある item
項目を比較し同じ値の場合、 cost
項目を結合する。
その際、参照データにない入力データと参照データにない範囲データをNULL値として出力する。
1nm.mjoin(k="item", f="cost", m="ref1.csv", n=True, N=True, i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# item%0,date,price,cost 4# A,20081201,100,50 5# A,20081213,98,50 6# B,20081002,400,300 7# B,20081209,450,300 8# C,20081201,100, 9# E,,,200
関連メソッド¶
mnjoin 参照ファイル項目の自然結合 : 参照データのキーに重複がある場合は
mnjoin
を使う。mpaste 参照ファイル項目の行番号マッチング結合 : 行番号による結合を行う。
mcommon 参照ファイルによる行選択 : 結合でなく単に選択するだけなら
mcommon
を使えばよい。