我有对象列表。 每个对象都来自具有以下属性的 Student 类:名称、ID、成绩。 Grades 是一个带有字符串键 ('math','cs',..) 的字典。 我想转换这个熊猫数据框列表:
df = name id math cs
a 2 90 92
b 5 82 96
最好的方法是什么?
答案 0 :(得分:1)
让我们尝试遍历 students
列表并通过检索所需的属性为每个 Student
对象创建一个记录,然后您可以从这些记录中构造一个新的数据框
df = pd.DataFrame([{'name': s.name, 'id': s.id, **s.grades} for s in students])
如果您有可变数量的实例属性,并且总是存在一个名为 grades
的属性,其中包含存储在字典中的学生标记
df = pd.DataFrame(map(vars, students))
df = df.join(pd.DataFrame([*df.pop('grades')]))
name id math cs
0 a 2 90 92
1 b 5 82 96