将有序的dataFrame转换为字典,元素的开头为底部

时间:2018-09-10 12:32:30

标签: python pandas dictionary

我有一个数据框,其中的元素按“值”列排序:

ID     Value
04      1
06      2
01      3
02      4
03      5

我需要获得以点为键的字典,以点为单位的点列表以值的顺序排列在圆圈中(第一个底部,第二个顶部)。

Dictionary: 
{
   01: [02,03,04,06],
   03: [04,06,01,02],
   ..
   ..
}

1 个答案:

答案 0 :(得分:2)

这是使用collections.deque的一种解决方案:

from collections import deque

dq = deque(df['ID'])
res = {}

for i in list(dq):
    res[i] = list(dq)[1:]
    dq.rotate(-1)

结果:

{'04': ['06', '01', '02', '03'],
 '06': ['01', '02', '03', '04'],
 '01': ['02', '03', '04', '06'],
 '02': ['03', '04', '06', '01'],
 '03': ['04', '06', '01', '02']}