【问题标题】:pandas: group the continuous rows with same values into one grouppandas:将具有相同值的连续行分组为一组
【发布时间】:2021-09-12 05:45:28
【问题描述】:

假设我有一个购买的 pandas 数据框,但没有类似的发票 ID

item_id customer_id
1 A
2 A
1 B
3 C
4 C
1 A
5 A

所以,我的假设是,如果客户连续订购多件商品,它们属于一个组。所以我想创建一个 order_id 列:

item_id customer_id order_id
1 A 1
2 A 1
1 B 2
3 C 3
4 C 3
1 A 4
5 A 4

order_id 应自动创建且增量。我应该如何处理 pandas?

非常感谢

【问题讨论】:

    标签: python pandas list dataframe numpy


    【解决方案1】:

    IIUC,这是一种方法:

    df['order_id'] = df.customer_id.ne(df.customer_id.shift()).cumsum()
    

    输出:

       item_id customer_id  order_id
    0        1           A         1
    1        2           A         1
    2        1           B         2
    3        3           C         3
    4        4           C         3
    5        1           A         4
    6        5           A         4
    

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2019-05-10
      • 2020-01-30
      • 2011-04-09
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      相关资源
      最近更新 更多