【发布时间】:2021-10-21 10:48:00
【问题描述】:
| CustomerID | Buying_Round | Date | Purchase_amount$ |
|---|---|---|---|
| 1001 | 2 | 01/02/2020 | 20 |
| 1001 | NaN | 07/03/2020 | 42 |
| 1001 | NaN | 01/01/2020 | 15 |
| 1002 | NaN | 01/07/2020 | 10 |
| 1002 | NaN | 07/04/2020 | 40 |
| 1002 | NaN | 12/11/2020 | 25 |
| 1003 | 1 | 22/02/2020 | 30 |
| 1003 | NaN | 14/03/2020 | 52 |
| 1003 | NaN | 10/10/2020 | 45 |
客户 ID 是基于某些机密数据的每个客户的唯一编号。这适用于一家杂货店,该杂货店试图根据客户进入的轮次和购买量来了解客户的购买倾向,以改善库存。 采购轮是他们第n次来店。
我所做的是从这些混乱的信息中对客户 ID 进行排序,我也可以对日期进行排序,但希望尽可能保持问题的原始性。对日期进行排序后,很明显日期会影响购买回合,我打算保留购买回合以计算回合与购买。现在我想按递增顺序填充购买轮次,从 1- 唯一客户出现的次数开始,然后再从 1 开始为下一个客户。
预期输出:
| CustomerID | Buying_Round | Date | Purchase_amount$ |
|---|---|---|---|
| 1001 | 2 | 01/02/2020 | 20 |
| 1001 | 3 | 07/03/2020 | 42 |
| 1001 | 1 | 01/01/2020 | 15 |
| 1002 | 2 | 01/07/2020 | 10 |
| 1002 | 1 | 07/04/2020 | 40 |
| 1002 | 3 | 12/11/2020 | 25 |
| 1003 | 1 | 22/02/2020 | 30 |
| 1003 | 2 | 14/03/2020 | 52 |
| 1003 | 3 | 10/10/2020 | 45 |
注意:1001 是一个示例,原始数据有 1001 出现 12 次,1002 出现 4 次,1003 出现 15 次,今年共有 11000 个唯一客户,没有模式或固定值来确定每个唯一 ID 的数量,我们当然有value_counts,但希望使用一种更简单的方式而不是硬编码。
【问题讨论】:
-
如果客户 1001 在同一日期有两个条目,它们应该是相同的 Buying_Round 编号还是应该不同?
-
对于单个日期 2 个数据点没有单个条目,因为数据是每天生成的,所以如果他来 10 次,总金额会被添加并在第 1 轮中给出
-
这基本上是因为现金用于购买,收银员需要手动输入数据,因此很多值都是 nan,因为他们不关心购买回合
标签: python pandas dataframe datetime fillna