列 Dist、Class、および Count を含むデータ セットがあります。
そのデータセットを dist でグループ化し、各グループのカウント列をそのグループのカウントの合計で割ります (1 に正規化します)。
次の MWE は、これまでの私のアプローチを示しています。しかし、私は疑問に思います:これを書くためのよりコンパクト/パンダ的な方法はありますか?
import pandas as pd
import numpy as np
a = np.random.randint(0,4,(10,3))
s = pd.DataFrame(a,columns=['Dist','Class','Count'])
def manipcolumn(x):
csum = x['Count'].sum()
x['Count'] = x['Count'].apply(lambda x: x/csum)
return x
s.groupby('Dist').apply(manipcolumn)