2016-10-06 1 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 

Как получить его с помощью функции pandas или 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 
Смежные вопросы