分享
为什么问答平台  ›  专栏  ›  技术社区  ›  Ayan

查找大熊猫中每个唯一ID以前发生的计数总数 - Find the sum of previous count occurrences per unique ID in pandas

  •  2
  • Ayan  · 技术社区  · 2 月前

    我有客户ID和购买ID的历史,没有客户购买过相同的产品。但是,对于每个采购ID(唯一的),我如何确定客户以前进行采购的次数

    我尝试过使用groupby()和sort_values()。

    df = pd.DataFrame({'id_cust': [1,2,1,3,2,4,1],                   
                      'id_purchase': ['20A','143C','99B','78R','309D','90J','78J']})
    df.sort_values(by='id_cust')
    df.groupby('id_cust')['id_purchase'].cumcount()
    

    这就是我所期望的:

      id_cust   id_purchase value
      1              20A        1
      2              143C       1
      1              99B        2
      3              78R        1
      2              3097D      2
      4              900J       1
      1              78J        3
    
    1 回复  |  直到 2 月前
        1
  •  1
  •   anky_91    2 月前

    你只需使用 cumcount() id_cust 列自 id_purchase 独特:

    df['value']=df.groupby('id_cust')['id_cust'].cumcount()+1
    print(df)
    

       id_cust id_purchase  value
    0        1         20A      1
    1        2        143C      1
    2        1         99B      2
    3        3         78R      1
    4        2        309D      2
    5        4         90J      1
    6        1         78J      3