5.21. mhashavg ハッシュ法による項目値の平均¶
hash法を使って k=
パラメータで指定した項目を単位にして、 f=
パラメータで指定した項目値の平均を計算する。
mavg 項目値の平均 との違いは、キー項目の並べ変えが必要ないため、その分処理速度が速い。
ただし、キーのサイズ(キー項目のとる値の種類数)が多い場合は処理速度が遅くなる。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
f= : 型=str , 必須
ここで指定された項目(複数項目指定可)の平均が計算される。:(コロン)で新項目名を指定可能。例)f=
数量:数量平均
k= : 型=str , 任意(default=キーブレイク処理しない)
ここで指定された項目をキーとして集計する(複数項目指定可)。
hs= : 型=str , 任意(default=199999)
n= : 型=bool , 任意(default=False)
NULL値が1つでも含まれていると結果もNULL値とする。
共通パラメータ¶
i= , o= , assert_diffSize= , assert_nullkey= , 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'''customer,quantity,amount 6A,1, 7B,,15 8A,2,20 9B,3,10 10B,1,20 11''')
基本例
customer
項目を単位にして、 quantity
と amount
項目の平均を計算する。
1nm.mhashavg(k="customer", f="quantity,amount", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# customer,quantity,amount 4# A,1.5,20 5# B,2,15
NULL値の出力
n=True
オプションを指定することで、NULL値が含まれている場合は、結果もNULL値として出力する。
1nm.mhashavg(k="customer", f="quantity,amount", n=True, i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# customer,quantity,amount 4# A,1.5, 5# B,,15
関連メソッド¶
mavg 項目値の平均 : 同じ機能をもつコマンドだが、内部的にキー項目の並べ替えを行う。
mhashsum ハッシュ法による項目値の合計 : 同じくハッシュ法を用いた合計計算。