如何在 Pandas 中计算分区 BY

AK9*_*K91 5 python window-functions pandas

下面的窗口函数在 pandas 中相当于什么

COUNT(order_id) OVER(PARTITION BY city)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我可以获得 row_number 或排名

df['row_num'] = df.groupby('city').cumcount() + 1
Run Code Online (Sandbox Code Playgroud)

但是像示例中那样按城市计数分区正是我正在寻找的

Roe*_*uar 6

尝试这个:

df['total_orders']=df.groupby('city')['order_id'].transform('count')
Run Code Online (Sandbox Code Playgroud)

groupby 之后的“transform”是一个调用函数,在每个组上生成类似索引的 DataFrame,并返回一个与填充有转换值的原始对象具有相同索引的 DataFrame。在本例中,您指示在每个“城市”内使用“count(order_if)”聚合。有关更多详细信息,请参阅:
https://pandas.pydata.org/pandas-docs/stable/user_guide/groupby.html#transformation