熊猫数据帧到有序词典

时间:2016-12-05 21:07:56

标签: python pandas dictionary

有一篇文章将熊猫数据框转换为字典以供进一步处理。

执行此操作的代码是:

df = pd.read_excel(open('data/file.xlsx', 'rb'), sheetname="Sheet1")
dict = df.set_index('id').T.to_dict('dict')

产生类似这样的内容:{column -> {index -> value}}

是否有快速方法代替此{column -> {index -> value}}获取此值:OrderedDict(column, value)作为返回值?

目前,我正在使用从pandas生成的字典,并将这些值逐个分配到有序字典中。这不是最佳方式,因为订单是乱码的

示例输入: 像这样的Excel文件:

Unique_id | column1 | column2 | column3 | column 4
1         | 3       | 4       | 43      | 90
2         | 54      | 6       | 43      | 54

并且输出应该是有序字典,如下所示:

{1:[3,4,43,90], 2:[54,6,43,54]}

1 个答案:

答案 0 :(得分:4)

您可以使用OrderedDict列中的Unique_id列来按所需顺序获取字典。以下内容应作为说明:

from collections import OrderedDict

# Get the unordered dictionary
unordered_dict = df.set_index('Unique_id').T.to_dict('list')

 # Then order it
ordered_dict = OrderedDict((k,unordered_dict.get(k)) for k in df.Unique_id)
# OrderedDict([(1, [3, 4, 43, 90]), (2, [54, 6, 43, 54])])

谢谢!

相关问题