5.66. mvcommon ベクトル要素の参照選択¶
ベクトルから、参照データで指定された要素を選択する。 なお、参照データデータを一旦全てメモリにセットするので、 巨大な参照データを指定した場合はメモリを使い果たす可能性があることに注意する。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
vf= : 型=str , 必須
結合キーとなるアイテム集合の項目名(i=
データ上)を指定する。複数項目指定可能。アイテムはソーティングされている必要はない。結果の項目名を変更したいときは、:(コロン)に続けて新項目名を指定する。例) f=数量:置換後の項目名
A= : 型=bool , 任意(default=False)
vf=
で:(コロン)に続けて指定した項目名で、新たな項目が追加される。なおA
オプションを指定した場合、vf=
パラメータで指定するすべての項目に新項目名を指定しなければならない。
m= : 型=str , 任意(default=標準入力)
参照データを指定する。このパラメータが省略された時には標準入力が用いられる。(i=
指定ありの場合)
K= : 型=str , 必須
参照データ(m=
)上の結合キーとなるアイテムの項目名を指定する。
r= : 型=bool , 任意(default=False)
vf=
とK=
の要素がマッチしない要素を選択する。
delim= : 型=str , 任意(default=)
ベクトル型データの区切り文字を指定する。
共通パラメータ¶
i= , o= , delim= , 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'''items1,items2 6b a c,b b 7c c,a d 8e a a,a a 9''') 10 11with open('ref1.csv','w') as f: 12 f.write( 13'''item 14a 15c 16e 17''')
複数項目に対して結合する例
1nm.mvcommon(vf="items1,items2", K="item", m="ref1.csv", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# items1,items2 4# a c, 5# c c,a 6# e a a,a a
項目名を変更する例
item2
に新項目名 new2
を指定しているので、
項目名が変更され出力される。
1nm.mvcommon(vf="items1,items2:new2", K="item", m="ref1.csv", i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# items1,new2 4# a c, 5# c c,a 6# e a a,a a
項目を追加する例
item1
に新項目名 new1
を、
item2
に新項目名 new2
を指定し、
A=True
オプションを付けているので
新項目 new1
と new2
が追加され出力される。
1nm.mvcommon(vf="items1:new1,items2:new2", A=True, K="item", m="ref1.csv", i="dat1.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# items1,items2,new1,new2 4# b a c,b b,a c, 5# c c,a d,c c,a 6# e a a,a a,e a a,a a
関連メソッド¶
mvjoin ベクトル要素の参照結合 : 選択でなくベクトル要素を結合する。