【发布时间】:2018-06-20 16:23:40
【问题描述】:
我有一个包含一些数据的 Pandas 数据框,我想将这些数据转换为一个两层深度的字典。
Subject_id Exam1 Exam2
Subject_1 9 5
Subject_2 7 4
Subject_3 3 8
现在我想要的是这样的字典结构
{'Subject_1': {'Exam1': 9,
'Exam2': 5}
'Subject_2': {'Exam1': 7,
'Exam2': 4}
'Subject_3': {'Exam1': 3,
'Exam2': 8}
}
我基本上尝试使用两个循环,每行一个循环遍历所有主题,然后每列一个循环。然后我像这样构建字典。
for i in df.size[0]:
for j in df.size[1]:
# df[i][j] has the score of subject_i and exam_j
my_dict[df[i]] = df[i][j]
但是我的 Dataframe 很大,我想要一种更优雅的方式来实现这一点(比如使用 zip 创建字典,但由于它是两个深度字典,并且一些信息是按列(主题)和其他信息按行(特定科目的考试笔记)我无法做到。
如何以 Python 风格和优雅的方式从输入数据框中获取所需的 dict?
谢谢。
【问题讨论】:
标签: python pandas dictionary