5.45. mselnum 数値範囲による行選択¶
f=
で指定した項目の値が、
c=
で指定した数値範囲にマッチする行を選択する。
以下に示すように多様な選択条件を指定することが可能である。
このコマンドで指定できないより複雑な条件(文字列マッチとの組み合せなど)
を設定するのであれば msel 条件式による行選択 コマンドを利用すればよい。
OR条件、AND条件およびキー指定についての詳細は mselstr
コマンドを参照されたい。
開区間、閉区間、半開区間、無限区間の制定が可能である。
c=
に複数の範囲を指定すれば、いずれかの範囲にマッチすれば選択される(OR条件)。
f
=に複数項目を指定すれば、いずれかの項目の値がマッチすれば選択される(OR条件)。
f=
のOR条件をAND条件に変更することも可能(F
オプション)。
k=
を指定することでキー単位で選択することが可能。キー単位選択の場合、複数レコードのAND条件を指定可能(
R
オプション)。
key |
val |
---|---|
a |
1 |
a |
-3 |
b |
3 |
b |
6 |
key |
val |
---|---|
a |
1 |
b |
3 |
key |
val |
---|---|
a |
1 |
key |
val |
---|---|
b |
6 |
key |
val |
---|---|
a |
1 |
a |
-3 |
b |
6 |
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
f= : 型=str , 必須
検索対象となる項目名リスト(複数項目指定可)を指定する。
c= : 型=str , 必須
f=
パラメータで指定した項目の値が、ここで指定した文字列リスト(複数範囲指定可)の1つにマッチすれば選択される。
k= : 型=str , 任意(default=キーブレイク処理しない)
撰択する単位となるキー項目(複数項目指定可)を指定する。
o= : 型=str , 任意(default=標準出力)
指定の条件に一致する行を出力するデータを指定する。
u= : 型=str , 任意(default=出力しない)
指定の条件に一致しない行を出力するデータを指定する。
F= : 型=bool , 任意(default=False)
f=
パラメータで複数項目を指定した場合、その全ての値がマッチする行を撰択する。
r= : 型=bool , 任意(default=False)
条件反転選択ではなく削除する。
R= : 型=bool , 任意(default=False)
k=
パラメータを指定した場合、その全ての行がマッチすれば行を撰択する。
bufcount= : 型=str , 任意(default=)
バッファのサイズ数を指定する。
共通パラメータ¶
i= , o= , bufcount= , assert_diffSize= , assert_nullkey= , assert_nullin= , 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'''id,val 61,5.1 72,5 83,-2.0 94, 105,2.0 11''')
基本例
val
項目が2以上5以下の行、すなわち id=2,5
の行を選択する。
1nm.mselnum(f="val", c="[2,5]", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# id,val 4# 2,5 5# 5,2.0
片側範囲
val
項目が2以上の行、すなわち id=1,2,5
の行を選択する。
1nm.mselnum(f="val", c="[2,]", i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# id,val 4# 1,5.1 5# 2,5 6# 5,2.0