2016-05-18 2 views
0

Извините за этот вопрос. У меня есть dataframe, который выглядит так:Как сделать простую группу в пандах?

df = pd.DataFrame({'chemical': ['A', 'A', 'A', 'B', 'B'], 'cost': [102, 104, 86, 20, 92], 'id': [1, 2, 3, 4, 5]}) 

Как я могу получить ранжированный список общей стоимости по химическим веществам?

Я знаю, что включает в себя, начиная с этого:

cost_by_chemical = df2.groupby('chemical') 

, но я не знаю, как продолжить?

Спасибо!

ответ

2

IIUC, то вы хотите следующее:

In [18]: 
df.groupby('chemical')['cost'].sum().rank().reset_index() 

Out[18]: 
    chemical cost 
0  A 2.0 
1  B 1.0 

Или

In [20]:  
df.groupby('chemical')['cost'].sum().reset_index() 

Out[20]: 
    chemical cost 
0  A 292 
1  B 112 
Смежные вопросы