pandas 将自定义对象列表转换为数据框

pandas tranform list of custom object to dataframe

我有对象列表。 每个对象都来自具有以下属性的 class 学生:姓名、ID、成绩。 grades 是一个带有字符串键 ('math','cs',..) 的字典。 我想转换这个 pandas 数据帧列表:

df = name id math cs
      a    2  90  92
      b    5  82  96

最好的方法是什么?

让我们尝试遍历 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