2016-11-21 1 views
1

У меня есть этот DataFrame:Как суммировать значения каждой категории в объекте серии?

Backpacking equipment DataFrame

Что мне нужно сделать, это группу DataFrame по Category колонку, а затем использовать функцию для вычисления общего веса каждой категории. Это то, что я сделал до сих пор ...

def multiply(group, quantity, weight): 
    x = group[quantity] 
    y = group[weight] 

    return x * y 

print(df.groupby('Category').apply(multiply, 'Quantity', 'Weight (oz.)')) 

В результате я получаю

Quantity by weight

Теперь, как я суммировать общий вес каждой категории (т.е. , Pack, Shelter, Sleep и т. Д.) Результирующего объекта Series?

+0

Вы можете вставить dataframe в текстовом формате, пожалуйста? –

ответ

1

Используя выборку ваших данных:

Item,Category,Quantity,Weight (oz.) 
Sleeping Pad,Sleep,1,80.0 
Sleeping Bag,Sleep,1,20.0 
Spoon,Kitchen,1,0.87 
Stove,Kitchen,1,20.0 
Water Filter,Kitchen,1,1.8 
Water Bottles,Kitchen,2,35.0 

In [1]: df = pd.read_clipboard(sep=',', index_col=0) 


In [2]: df.groupby('Category').apply(lambda x: (x['Quantity'] *x['Weight (oz.)']).sum()) 
Out[2]: 
Category 
Kitchen  92.67 
Sleep  100.00 
dtype: float64