【问题标题】:How do I get the nth order # for a customer's purchase with pandas?如何获得客户购买 pandas 的第 n 个订单?
【发布时间】:2020-02-20 02:35:28
【问题描述】:

假设我有一个这样的数据框:

customer_id,purchase_date
A,2019-10-05
A,2019-10-02
A,2019-10-01
A,2019-10-03
B,2019-10-01
B,2019-10-03
C,2019-10-04

如何生成一个新列来显示每个客户的第 n 个订单进度,以便我得到一个看起来像这样的数据框:

customer_id,purchase_date,order_num,
A,4
A,2
A,1
A,3
B,1
B,2
C,1

【问题讨论】:

  • 同一客户同一天有两个订单怎么办?

标签: pandas data-science


【解决方案1】:

你可以groupby().cumcount():

df['order_num'] = df.sort_values('purchase_date').groupby('customer_id').cumcount() + 1

输出:

  customer_id purchase_date  order_num
0           A    2019-10-05          4
1           A    2019-10-02          2
2           A    2019-10-01          1
3           A    2019-10-03          3
4           B    2019-10-01          1
5           B    2019-10-03          2
6           C    2019-10-04          1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2022-06-15
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2023-03-28
    相关资源
    最近更新 更多