Dataframe 中 Pandas 中的聚合列

Aggregated Columns in Pandas within a Dataframe

我正在使用 groupby() 和 reset_index() 函数使用来自 Pandas Dataframe 的数据创建具有聚合值的列,如下所示:

df=data.groupby(["subscription_id"])["count_boxes"].sum().reset_index(name="amount_boxes")

df1=data.groupby(["subscription_id"])["product"].count().reset_index(name="count_product")

想要将所有这些聚合列("amount_boxes" 和 "count_product")合并到一个数据框中,并使用 groupby 列 "subscription_id"。有什么方法可以在函数中执行此操作而不是合并数据帧吗?

让我们看看使用 .agg 与列和聚合函数的字典。

(df.groupby('Subscription_id')
   .agg({'count_boxes':'sum','product':'count'})
   .reset_index()
   .rename(columns={'count_boxes':'amount_boxes','product':'count_product'}))

示例输出:

   Subscription_id  amount_boxes  count_product
0                1            16              2
1                2            39              6
2                3            47              7