5.1. maccum 累積計算¶
f=
パラメータで指定した項目の累積を計算し、新しい項目として追加する。
k=
を指定することで、キー単位毎に累積計算が可能となる。
パラメータ¶
k= : 型=str , 任意(default=キーブレイク処理しない)
累積の単位となる項目名リスト(複数項目指定可)を指定する。
s= : 型=str , 条件付き必須( q
オプションの指定がない場合)
ここで指定した項目(複数項目指定可)で並べ替えられた後、累積が計算される。q
オプションを指定しないとき、s=
パラメータは必須。
f= : 型=str , 必須
ここで指定した項目(複数項目指定可)の値が累積される。項目の値がNULL値である場合は無視される。:(コロン)で新項目名を指定する必要がある。例)f=数量:数量累計
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
共通パラメータ¶
i= , o= , assert_diffSize= , assert_nullkey= , assert_nullin= , assert_nullout= , 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,1,10 7A,2,20 8B,1,15 9B,3,10 10B,1,20 11''') 12 13with open('dat2.csv','w') as f: 14 f.write( 15'''customer,quantity,amount 16A,1,10 17A,,20 18B,1,15 19B,3, 20B,1,20 21''')
基本例
quantity
と amount
項目の累積値を計算し、 qttAccum
と amtAccum
という項目名で出力する。
1nm.maccum(s="customer", f="quantity:qttAccum,amount:amtAccum", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# customer%0,quantity,amount,qttAccum,amtAccum 4# A,1,10,1,10 5# A,2,20,3,30 6# B,1,15,4,45 7# B,3,10,7,55 8# B,1,20,8,75
キー項目を指定する例
customer
項目を単位に quantity
と amount
項目の累積値を計算し、 qttAccum
と amtAccum
という項目名で出力する。
1nm.maccum(k="customer", s="customer", f="quantity:qttAccum,amount:amtAccum", i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# customer,quantity,amount,qttAccum,amtAccum 4# A,1,10,1,10 5# A,2,20,3,30 6# B,1,15,1,15 7# B,3,10,4,25 8# B,1,20,5,45
NULL値を含む累計
quantity
と amount
項目の累積値を計算し、 qttAccum
と amtAccum
という項目名で出力する。
NULLは無視される。結果もNULLが出力される。
1nm.maccum(s="customer", f="quantity:qttAccum,amount:amtAccum", i="dat2.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# customer%0,quantity,amount,qttAccum,amtAccum 4# A,1,10,1,10 5# A,,20,,30 6# B,1,15,2,45 7# B,3,,5, 8# B,1,20,6,65
関連メソッド¶
mshare 構成比の計算 : 構成比を計算する。
maccum
と組み合わせて累積相対度数が計算できる。mcal 項目間演算 : 前行の計算結果
#{}
を利用することで累計計算ができる。