2016-10-06 31 views
1

我要計算每個組的百分比和一個新列 例如: 數據=熊貓/ SQL-計算pecentage根據不同的組

Group Value 
    A  1 
    A  2 
    A  1 
    B  4 
    B  4 
    B  8 

,我想:

Group Value Percentage 
    A  1   0.25 
    A  2   0.50 
    A  1   0.25 
    B  4   0.25 
    B  4   0.25 
    B  8   0.50 

如何獲得它與熊貓函數或SQL?謝謝!

回答

2

使用熊貓:

df['Percentage'] = df.groupby('Group')['Value'].transform(lambda x: x/x.sum()) 

輸出:

Group Value Percentage 
0  A  1  0.25 
1  A  2  0.50 
2  A  1  0.25 
3  B  4  0.25 
4  B  4  0.25 
5  B  8  0.50 
1

嘗試使用

SELECT A.Group, 
     A.Value, 
     (A.Value/(SELECT Sum(b.Value) 
        FROM yourtable b 
        WHERE b.Group = A.Group)) Percentage 
FROM yourtable A