5.45. mselnum 数値範囲による行選択

f= で指定した項目の値が、 c= で指定した数値範囲にマッチする行を選択する。 以下に示すように多様な選択条件を指定することが可能である。 このコマンドで指定できないより複雑な条件(文字列マッチとの組み合せなど) を設定するのであれば msel 条件式による行選択 コマンドを利用すればよい。 OR条件、AND条件およびキー指定についての詳細は mselstr コマンドを参照されたい。

  • 開区間、閉区間、半開区間、無限区間の制定が可能である。

  • c= に複数の範囲を指定すれば、いずれかの範囲にマッチすれば選択される(OR条件)。

  • f =に複数項目を指定すれば、いずれかの項目の値がマッチすれば選択される(OR条件)。

  • f= のOR条件をAND条件に変更することも可能( F オプション)。

  • k= を指定することでキー単位で選択することが可能。

  • キー単位選択の場合、複数レコードのAND条件を指定可能( R オプション)。

典型的な例を 表 5.1表 5.4 に示す。

表 5.1 入力データ

key

val

a

1

a

-3

b

3

b

6

表 5.2 val項目が1以上3以下の行を選択

key

val

a

1

b

3

表 5.3 val項目が1以上3未満の行を選択

key

val

a

1

表 5.4 5以上の行を選択

key

val

b

6

表 5.5 1以下もしくは5以上の行を選択

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=)

バッファのサイズ数を指定する。

利用例

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

関連メソッド