Python中利用另一DataFrame余额调整当前DataFrame数值的实现
问题说明
原始表格
表A
| 员工ID | 日期 | 使用数据量 |
|---|---|---|
| 1 | 01-01-2020 | 2 |
| 1 | 02-01-2020 | 5 |
| 1 | 03-01-2020 | 6 |
| 1 | 04-01-2020 | 4 |
| 2 | 05-01-2020 | 1 |
| 2 | 06-01-2020 | 2 |
| 2 | 07-01-2020 | 2 |
表B
| 员工ID | 日期 | 数据余额 |
|---|---|---|
| 1 | 01-01-2020 | 6 |
| 1 | 02-01-2020 | 9 |
| 1 | 03-01-2020 | 5 |
| 1 | 04-01-2020 | 3 |
| 2 | 05-01-2020 | 7 |
| 2 | 06-01-2020 | 8 |
| 2 | 07-01-2020 | 1 |
需求规则
让表A匹配表B中对应员工、对应日期的数据余额,执行以下逻辑:
- 若余额充足,在表A新增「调整标记」列并标记为
yes,将「使用数据量」设为0,同时更新表B的余额,剩余余额可用于该员工后续的表A记录; - 若余额不足,「调整标记」列标记为
no,「使用数据量」保持原值。
计算逻辑示例
调整后的表A
| 员工ID | 日期 | 使用数据量 | 调整标记 |
|---|---|---|---|
| 1 | 01-01-2020 | 0 | yes |
| 1 | 02-01-2020 | 0 | yes |
| 1 | 03-01-2020 | 0 | yes |
| 1 | 04-01-2020 | 0 | yes |
| 2 | 05-01-2020 | 1 | no |
| 2 | 06-01-2020 | 2 | no |
| 2 | 07-01-2020 | 2 | yes |
余额更新后的表B
| 员工ID | 日期 | 数据余额 | 新余额 |
|---|---|---|---|
| 1 | 01-01-2020 | 6 | 4 |
| 1 | 02-01-2020 | 9 | 8 |
| 1 | 03-01-2020 | 5 | 7 |
| 1 | 04-01-2020 | 3 | 6 |
| 1 | 07-01-2020 | 7 | 14 |
| 1 | 06-01-2020 | 8 | |
| 1 | 07-01-2020 | 1 |
期望最终输出
| 员工ID | 日期 | 使用数据量 | 调整标记 |
|---|---|---|---|
| 1 | 01-01-2020 | 0 | yes |
| 1 | 02-01-2020 | 0 | yes |
| 1 | 03-01-2020 | 0 | yes |
| 1 | 04-01-2020 | 0 | yes |
| 2 | 05-01-2020 | 1 | no |
| 2 | 06-01-2020 | 2 | no |
| 2 | 07-01-2020 | 2 | yes |
内容的提问来源于stack exchange,提问作者Manish
相关产品推荐
相关产品推荐

