有一篇文章将熊猫数据框转换为字典以供进一步处理。
执行此操作的代码是:
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]}
答案 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])])
谢谢!