5.4. mbest 指定行の選択

指定した行番号の行を選択する。 行番号は0から始まることに注意する(項目名行は除いて、データ本体の先頭行が0行目)。 行番号は fr=to= (もしくは size= )で指定する。

パラメータ

i= : 型=str , 任意(default=標準入力)

入力データを指定する。

o= : 型=str , 任意(default=標準出力)

出力データを指定する。

s= : 型=str , 条件付き必須( q オプションの指定がない場合)

ここで指定した項目(複数項目指定可)で並べ替えられた後、指定した行が選択される。
q オプションを指定しないとき、 s= パラメータは必須。

fr= : 型=str , 任意(default=0)

選択する開始行番号(0以上の整数)

to= : 型=str , 任意(default=0)

選択する終了行番号(0以上の整数)
fr= の値」 \(\le\)to= の値」でなければならない。

size= : 型=str , 任意(default=1)

選択する行数
to=size= の両方を同時に指定することはできない。

R= : 型=str , 任意(default=)

行番号範囲リスト(複数項目指定可)【必須】*以前のバージョンで使用されていた範囲指定の方法
ここで指定した行番号の行が選択される。
_(アンダーバー)で範囲指定できる。
範囲指定の際にはMIN(開始行以降),MAX(最終行まで)を使用できる。
※One Point:事前に目的とする行選択が行いやすいように並べ替えておくとよい。

k= : 型=str , 任意(default=キーブレイク処理しない)

指定列の項目(複数項目指定可)が同じ値の行ごとに、 fr= , to= , size= で指定した行番号の行を選択する。
x オプションもしくは nfn オプション使用時は、項目番号(0〜)で指定可能。

u= : 型=str , 任意(default=出力しない)

不一致データ出力データ
指定の条件に一致しない行を出力するデータ。

r= : 型=bool , 任意(default=False)

条件反転
fr=,to=(size=) パラメータで指定した行番号以外の行を選択する。

共通パラメータ

i= , o= , assert_diffSize= , assert_nullkey= , 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'''customer,quantity,amount
 6A,20,5200
 7B,18,4000
 8C,15,3500
 9D,10,2000
10E,3,800
11''')
12
13with open('dat2.csv','w') as f:
14  f.write(
15'''customer,date,amount
16A,20081201,10
17A,20081207,20
18A,20081213,30
19B,20081002,40
20B,20081209,50
21''')

基本例

この例では、 quantityamount 項目値の大きい順(降順)に並べ替えている。 from= , to= , size= を指定しなければ先頭行(0行目)のみ選択する

1nm.mbest(s="quantity%nr,amount%nr", i="dat1.csv", o="rsl1.csv").run()
2### rsl1.csv の内容
3# customer,quantity%0nr,amount%1nr
4# A,20,5200

基本例2

customer で並べ替えた後、先頭行(0行目)から3行選択する

1nm.mbest(s="customer", fr="0", size="3", i="dat1.csv", o="rsl2.csv").run()
2### rsl2.csv の内容
3# customer%0,quantity,amount
4# A,20,5200
5# B,18,4000
6# C,15,3500

基本例3

並べ替えを行わず(もとのレコード順序を維持したまま)、0行目から1行目まで選択する

1nm.mbest(q=True, fr="0", to="1", i="dat1.csv", o="rsl3.csv").run()
2### rsl3.csv の内容
3# customer,quantity,amount
4# A,20,5200
5# B,18,4000

条件反転

顧客の初回来店日以外の行を選択する。 初回来店日は fvd.csv というファイルに出力する。

 1nm.mbest(s="customer,date", k="customer", r=True, u="fvd.csv", i="dat2.csv", o="rsl4.csv").run()
 2### fvd.csv の内容
 3# customer,date,amount
 4# A,20081201,10
 5# B,20081002,40
 6### rsl4.csv の内容
 7# customer,date,amount
 8# A,20081207,20
 9# A,20081213,30
10# B,20081209,50

関連メソッド