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
我有对象列表。 每个对象都来自具有以下属性的 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