5.21. mhashavg ハッシュ法による項目値の平均

hash法を使って k= パラメータで指定した項目を単位にして、 f= パラメータで指定した項目値の平均を計算する。 mavg 項目値の平均 との違いは、キー項目の並べ変えが必要ないため、その分処理速度が速い。 ただし、キーのサイズ(キー項目のとる値の種類数)が多い場合は処理速度が遅くなる。

パラメータ

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

入力データを指定する。

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

出力データを指定する。

f= : 型=str , 必須

ここで指定された項目(複数項目指定可)の平均が計算される。
:(コロン)で新項目名を指定可能。例) f= 数量:数量平均

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

ここで指定された項目をキーとして集計する(複数項目指定可)。

hs= : 型=str , 任意(default=199999)

ハッシュサイズ
ハッシュサイズを指定する。
詳細に関しては「 mhashsum ハッシュ法による項目値の合計 」の節を参照のこと。

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

NULL値が1つでも含まれていると結果もNULL値とする。

利用例

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 項目を単位にして、 quantityamount 項目の平均を計算する。

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

関連メソッド