分组并找到平均值并计入单独的列

时间:2017-09-30 10:09:40

标签: python pandas dataframe group-by pandas-groupby

我有以下数据框(df):

Items              Category       Quantity       Weight(each)
Spoon              Kitchen        2               0.7
Tent               Shelter        1               80.0
Sleeping Bag       Shelter        1               20.0    
Sunscreen          Health         2               5.0
Water Bottles      Kitchen        2               35.0

我想计算每个类别的数量,以及按类别计算的重量平均值。

所需的输出:

              count(Quantity)           mean(Weight)
Category       
Kitchen         4                        17.5
Shelter         2                        50.0
Health          2                        5.0

我知道怎么分开做。但我不确定如何将它们合并在一起。 单独:

df.groupby('Category')['Quantity'].agg(['count'])

df.groupby('Category')['Weight(each)'].agg(['mean'])

1 个答案:

答案 0 :(得分:4)

我认为您正在寻找以groupby传递的agg + dict

df.groupby('Category').agg({'Quantity' : 'sum', 'Weight(each)' : 'mean'})

          Weight(each)  Quantity
Category                        
Health            5.00         2
Kitchen          17.85         4
Shelter          50.00         2