2017-01-04 2 views
0

私はこのようなデータセットがあります。パンダデータフレーム、集計し、次の列のデータを入れ

Country Name  Match Result 
US  Martin Win  3 
US  Martin Lose 1 
US  Martin Draw 5 
UK  Luther Win  5 
UK  Luther Draw 3 

私が勝つからの加算結果と2つの列を追加したいのですが、失うとドロー、および割合

Country Name  Match Result All Percentage 
US  Martin Win  3  8 0.375 
US  Martin Lose 1  8 0.125 
US  Martin Draw 5  8 0.625 
UK  Luther Win  6  10 0.6 
UK  Luther Draw 4  10 0.4 

私はすでにgroupbyを使ってみましたが、サイズの合計が一致しました。しかし、私はそれを次の列に入れる方法を知らない。

あなたがGroupBy.transformが必要

+3

が '' 9'、ない '8'(5 +ことMartin'のための' ALL'の列ではありません万一3 + 1)? – blacksite

+0

はい私の間違い、それは(5 + 1 + 2)でなければならない..ありがとう –

答えて

1

IIUCありがとう、サンプルDataFrameが変更されました:

df['All'] = df.groupby(['Country','Name'])['Result'].transform('sum') 
df['Percentage'] = df.Result.div(df.All) 
print (df) 
    Country Name Match Result All Percentage 
0  US Martin Win  2 8  0.250 
1  US Martin Lose  1 8  0.125 
2  US Martin Draw  5 8  0.625 
3  UK Luther Win  6 10  0.600 
4  UK Luther Draw  4 10  0.400 
+0

私の答えが役に立つなら、[accept](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。それ。ありがとう。 – jezrael