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

时间:2021-05-02 12:46:10

标签: python pandas dataframe data-science

我有对象列表。 每个对象都来自具有以下属性的 Student 类:名称、ID、成绩。 Grades 是一个带有字符串键 ('math','cs',..) 的字典。 我想转换这个熊猫数据框列表:

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

最好的方法是什么?

1 个答案:

答案 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
相关问题