Groupby 并找到平均值并在单独的列上计数

she*_*nzy 0 python group-by dataframe pandas 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
Run Code Online (Sandbox Code Playgroud)

我想统计每个类别的数量,以及按类别划分的权重的平均值。

所需的输出:

              count(Quantity)           mean(Weight)
Category       
Kitchen         4                        17.5
Shelter         2                        50.0
Health          2                        5.0
Run Code Online (Sandbox Code Playgroud)

我知道如何单独进行。但我不确定如何将它们合并在一起。分别地:

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

df.groupby('Category')['Weight(each)'].agg(['mean'])
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 5

我认为您正在寻找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
Run Code Online (Sandbox Code Playgroud)