我使用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"组合在一个数据框中。有没有办法在函数中执行此操作而不是合并数据框?
答案 0 :(得分:1)
让我们看一下使用.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