首页 > 解决方案 > 按 Pandas Dataframe 中的列中的条目分组

问题描述

我有一个带有idas index、和as 列的 Pandas DataFrame brand,如下所示:typeprice

                   brand  type  price
id                                                                 
1234567            A      X         39.0
2391923            A      Y         20.0
1595354            B      X         12.4
6699874            B      Z         88.2
0998877            B      Z         100.1
8791392            C      X         32.0

我想按品牌和类别“分组”以找到像这样组织的平均价格:

             X      Y      Z
brand_A  $$.$$  $$.$$  $$.$$
brand_B  $$.$$  $$.$$  $$.$$
brand_C  $$.$$  $$.$$  $$.$$

我知道使用group_by.mean()方法可以让我接近我想要的,但不完全是。任何提示表示赞赏。

标签: pythonpandasdataframe

解决方案


我认为你可以使用.groupby.unstack

df1 = df.groupby(['brand','type'])['price'].mean().unstack(1,fill_value=0)

print(df1)

type      X     Y      Z
brand
A      39.0  20.0   0.00
B      12.4   0.0  94.15
C      32.0   0.0   0.00

推荐阅读