【发布时间】:2021-05-17 09:00:19
【问题描述】:
我有一个数据框(df_orderlines),它按订单号对多个产品进行分组。我正在尝试为拾取者创造一个波浪来拾取这些产品。如果一次只有一个订单,我设法做到了,但我想动态地做到这一点。我怎样才能做到这一点?目前我有这个。
if (orders_number == 1 ):
df_orderlines['WaveID'] = df_orderlines.OrderID.fillna(0).astype(int) - 1
else:
for i in range(orders_number):
df_orderlines['WaveID'] = (df_orderlines.OrderID % orders_number == 0).shift(1).fillna(0).cumsum()
当同时挑选两个订单时,它会输出这样的数据帧
| OrderNumber | TimeStamp | Coord | OrderID | WaveID |
|---|---|---|---|---|
| 1 | 2019-11-02 12:00 | 0,7 | 1.0 | 0 |
| 1 | 2019-11-02 12:00 | 1,8 | 1.0 | 0 |
| 1 | 2019-11-02 12:00 | 0,8 | 1.0 | 0 |
| 2 | 2019-11-02 12:10 | 3,10 | 2.0 | 0 |
| 2 | 2019-11-02 12:10 | 2,9 | 2.0 | 1 |
| 3 | 2019-11-02 12:20 | 5,24 | 3.0 | 2 |
| 3 | 2019-11-02 12:20 | 2,12 | 3.0 | 2 |
| 3 | 2019-11-02 12:20 | 3,43 | 3.0 | 2 |
| 4 | 2019-11-02 12:30 | 6,24 | 4.0 | 2 |
| 4 | 2019-11-02 12:30 | 3,30 | 4.0 | 3 |
但它应该看起来像这样
| OrderNumber | TimeStamp | Coord | OrderID | WaveID |
|---|---|---|---|---|
| 1 | 2019-11-02 12:00 | 0,7 | 1.0 | 0 |
| 1 | 2019-11-02 12:00 | 1,8 | 1.0 | 0 |
| 1 | 2019-11-02 12:00 | 0,8 | 1.0 | 0 |
| 2 | 2019-11-02 12:10 | 3,10 | 2.0 | 0 |
| 2 | 2019-11-02 12:10 | 2,9 | 2.0 | 0 |
| 3 | 2019-11-02 12:20 | 5,24 | 3.0 | 1 |
| 3 | 2019-11-02 12:20 | 2,12 | 3.0 | 1 |
| 3 | 2019-11-02 12:20 | 3,43 | 3.0 | 1 |
| 4 | 2019-11-02 12:30 | 6,24 | 4.0 | 1 |
| 4 | 2019-11-02 12:30 | 3,30 | 4.0 | 1 |
【问题讨论】:
-
你能提供一个数据框样本吗?
-
我正在使用一个 .txt 文件,其中包含我为测试而创建的数据。初始数据框应如下所示 OrderNumber |时间戳 |坐标|数据已经在问题上