2016-10-12 5 views
3

私はデータをグループ化するカテゴリの列を持ち、他の列はデータフレームdfでこれが好きです。私は必要なものパンダのカテゴリの列で値を集計する方法は?

id  subid  value 
1  10   1.5 
1  20   2.5 
1  30   7.0 
2  10   12.5 
2  40   5 

は各id内の各subidの平均値を持つ列です。例えばdfは次のようになります。

df['id_sum'] = df.groupby('id')['value'].sum() 

しかし、これは期待して動作していないよう:

id  subid  value  id_sum proportion 
1  10   1.5  11.0  0.136 
1  20   2.5  11.0  0.227 
1  30   7.0  11.0  0.636 
2  10   12.5  17.5  0.714 
2  40   5   17.5  0.285 

は今、私が行って、id_sum列を取得しようとしました。私の最終目標はproportionの列を取得することです。それを得る正しい方法は何ですか?

答えて

4

ここで我々は感謝

df['id_sum'] = df.groupby('id')['value'].transform('sum') 
df['proportion'] = df['value']/df['id_sum'] 
+1

ワウを行きます!それは簡単でした。何らかの理由で「変形」を考えなかった。 – sfactor

関連する問題