这里有张桌子。它记录表中记录从状态到状态的转换历史
ID | status_id | time_add |
---|---|---|
一 | 0 | 14-10 |
一 | 一 | 13-12 |
一 | 7 | 12-12 |
2 | 3 | 14-09 |
2 | 6 | 14-08 |
2 | 7 | 14-06 |
3 | 一 | 13-11 |
3 | 3 | 12-10 |
3 | 一 | 12-09 |
使用 pandas 将桌子拉出。数据也按id和时间排序(时间降序排列。)
req_2 = pd.DataFrame(mobile_records_2)
还有一个按类型从状态到状态的有效转换字典
dict_1 = {'1':'2', '2':'3', '1':'4', '2':'5', '5':'2', }
从status到status的转换是status_id列的相邻值的组合。也就是说,对于 id = 1,从状态到状态的转换如下:
7 - 1 - 0(0 - 最终和最新状态)在 12 -12,id(1) 的记录处于状态 (7) 然后在 13-12 将状态更改为 (1) 并在 14-10 完成转换并保持状态 (0) 这就是问题,您如何比较从状态到表记录状态的转换是否对应于字典中允许转换?
类似的东西。请记住,一本字典不能有多个具有相同键的条目。如果你需要这个,你将不得不从字典转换为元组列表。我更改了字典中的一个条目,以便至少有一个过渡是合法的:
结论:
在括号中 - 这种转换键的字典值,如果该键根本不在字典中,那么它将是
None
.我不去判断这段代码的有效性,我只是把它作为替代:
正如@CrazyElf 在他的回答中已经说过的那样,字典中的键必须是唯一的(由于“1”键的非唯一性,无法识别 1->3 转换)