You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动将自定义类对象列表转换为DataFrame(无需指定列名)

如何自动将自定义对象列表转为匹配属性名的DataFrame?

当然可以,不用手动指定列名就能实现,下面是两种简洁的方法:

方法1:利用__dict__和from_records

每个Python实例的__dict__属性会返回其所有实例属性与对应值的字典,我们可以把对象列表转换成字典列表后,传给pandas.DataFrame.from_records:

import pandas as pd

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person_list = [Person("Mary", 30), Person("John", 32)]

df = pd.DataFrame.from_records([p.__dict__ for p in person_list])
print(df)

运行后输出就是你要的格式:

name  age
0   Mary   30
1   John   32

方法2:直接传入对象列表给pd.DataFrame()

Pandas本身支持直接传入自定义对象列表,它会自动识别对象的公共属性作为列名:

import pandas as pd

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person_list = [Person("Mary", 30), Person("John", 32)]

df = pd.DataFrame(person_list)
print(df)

这个方法输出和上面完全一致,更简洁。如果你的类里有其他特殊属性(比如以_开头的私有属性),Pandas会自动忽略它们,只保留公共属性列。

内容的提问来源于stack exchange,提问作者Sean L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 11:47:11