2017-01-04 150 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 

我想補充兩列從勝利和結果,失去和Draw,和百分比每場比賽是這樣的:

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並得到了大小總計匹配的結果。但是我不知道如何把它放在下一列。

謝謝

+3

不應該爲'了'All'列Martin'是'9',不'8'(5 + 3 + 1)? – blacksite

+0

是的,我的錯誤,它應該是(5 + 1 + 2)..謝謝 –

回答

1

IIUC你需要GroupBy.transform,樣品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

如果我的回答很有幫助,請不要忘記[接受](http://meta.stackexchange.com/a/5235/295067)它。謝謝。 – jezrael