Python列,其订单号基于条件

Python列,其订单号基于条件,python,Python,我的表格如下所示: 顾客在不同的日期购买商品。每个客户都有不同的号码。每个项目都有不同的ID 我想在每个ID的单独列中有一个信息,是给定客户的第一项还是第二项或第三项等 我试着: df['item_order'] = np.where(df['Customer']==df['Customer'].shift(), df.item_order.shift()+1, 0) 但是只有0表示第一个,1表示第二个,第三个等等。您可以使用pandas尝试下面

我的表格如下所示:

顾客在不同的日期购买商品。每个客户都有不同的号码。每个项目都有不同的ID

我想在每个ID的单独列中有一个信息,是给定客户的第一项还是第二项或第三项等

我试着:

df['item_order'] = np.where(df['Customer']==df['Customer'].shift(),
                       df.item_order.shift()+1, 0)

但是只有0表示第一个,1表示第二个,第三个等等。

您可以使用pandas尝试下面的代码

df[['ID','Customer','Date']].groupby(['ID','Customer']).agg('count')

让我知道这是否是您期望的输出

谢谢大家的帮助,解决方案是排名法

您可以为我的问题找到以下解决方案:
df['rank']=df.sort_values('Customer').groupby('Customer').Date.rank(method='first')

您可以通过对客户id和产品id以及订单日期的结果进行分组来查找行的排名。参考-虽然不确定,但我相信他在寻找
rank()
不幸的是,我只有“1”值。我想这是因为ID是唯一的。所以['ID','Customer']也是唯一的