如何自动将自定义类对象列表转换为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
相关产品推荐
相关产品推荐

