按约束条件排序Pandas DataFrame:车辆重分配排序需求
车辆重分配记录的排序需求
测试用DataFrame代码
import pandas as pd import numpy as np df = pd.DataFrame({'car': ['Pickup', 'Racer', 'Lorry', 'Luxury', 'Cabrio', 'Bicycle', 'Truck'], 'old_owner': ['1', '1', '1', '2', '2', '3', '1'], 'new_owner': ['2', '3', '2', '1', '1', '1', '1']}) print(df)
运行输出:
car old_owner new_owner0 Pickup 1 2
1 Racer 1 3
2 Lorry 1 2
3 Luxury 2 1
4 Cabrio 2 1
5 Bicycle 3 1
6 Truck 1 1
排序约束条件
该DataFrame记录车辆重分配情况,数字为随机账号(非连续的1、2、3序列)。排序需满足以下规则:
- 从非1账号取走车辆前,必须先给该账号分配一辆来自1账号的车辆;
- 任意时刻,非1账号的车辆数不得少于初始数量;
- 1账号在获得新分配车辆前,最多可比初始数量少一辆。
期望排序结果
car old_owner new_owner 0 Pickup 1 2 1 Luxury 2 1 2 Racer 1 3 3 Bicycle 3 1 4 Lorry 1 2 5 Cabrio 2 1 6 Truck 1 1
内容的提问来源于stack exchange,提问作者Exa
相关产品推荐
相关产品推荐

