5.39. mpaste 参照ファイル項目の行番号マッチング結合¶
入力データと参照データを行番号でマッチングさせて結合する。
データ件数が異なる場合は、少い方のデータに合わせる。
n
や N
オプションを指定することでマッチングできな行もNULL値で結合することが可能である。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
f= : 型=str , 任意(default=)
結合する参照データ上の項目名リスト(複数項目指定可)。省略するとキー項目を除いた全ての項目が結合される。
m= : 型=str , 任意(default=標準入力)
参照データを指定する。このパラメータが省略された時には標準入力が用いられる。(i=
指定ありの場合)
n= : 型=bool , 任意(default=False)
入力データにあって参照データにない場合にNULL値を出力する。
N= : 型=bool , 任意(default=False)
参照データにあって入力データにない場合にNULL値を出力する。
共通パラメータ¶
i= , o= , assert_diffSize= , assert_nullin= , assert_nullout= , nfn= , nfno= , x= , tmppath= , precision=
利用例¶
importと入力データ(CSV)の準備
1import nysol.mcmd as nm 2 3with open('dat1.csv','w') as f: 4 f.write( 5'''id1 61 72 83 94 10''') 11 12with open('ref1.csv','w') as f: 13 f.write( 14'''id2 15a 16b 17c 18d 19''') 20 21with open('ref2.csv','w') as f: 22 f.write( 23'''id2 24a 25b 26''') 27 28with open('ref3.csv','w') as f: 29 f.write( 30'''id2,val 31a,R0 32b,R1 33c,R2 34d,R3 35''')
基本例
1nm.mpaste(m="ref1.csv", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# id1,id2 4# 1,a 5# 2,b 6# 3,c 7# 4,d
行数が異なる例
入力ファイルと参照ファイルで行数が異なる場合は、少いファイルの行数に合わせる。
1nm.mpaste(m="ref2.csv", i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# id1,id2 4# 1,a 5# 2,b
外部結合
n=True
を指定すると、参照ファイルの行数が少なくても、対応しない入力ファイルの行もNULL値を結合して出力する。
1nm.mpaste(m="ref2.csv", n=True, i="dat1.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# id1,id2 4# 1,a 5# 2,b 6# 3, 7# 4,
結合項目を指定
1nm.mpaste(f="val", m="ref3.csv", i="dat1.csv", o="rsl4.csv").run() 2### rsl4.csv の内容 3# id1,val 4# 1,R0 5# 2,R1 6# 3,R2 7# 4,R3
関連メソッド¶
mjoin 参照ファイルの項目結合 : 行番号でなく、キー項目で結合する。