2016-05-27 2 views
0

У меня есть панды Dataframe, который выглядит какРасчеты, делая агрегацию dataframe в панд

id  rank  weight 

2  4  2 
6  12  1 
3  9  1 
7  1  2 
1  4  4 
7  3  1 
2  19  2 
6  3  2 
8  4  3 
5  7  1 
2  5  2 
1  6  1 
3  1  1 

Я хочу, чтобы вычислить суммы rank*weight для каждого отдельного id и сохранить его как новый dataframe. Как это можно достичь?

ответ

0

Если нужен только один выходной столбец использовать groupby с sum и product:

df1 = (df.groupby('id')['rank','weight'].sum().product(1)) 
print (df1.reset_index(name='out')) 
    id out 
0 1 50 
1 2 168 
2 3 20 
3 5 7 
4 6 45 
5 7 12 
6 8 12