我似乎找不到任何内置方法来简单地将Pydantic BaseModel列表转换为Pandas Dataframe。
from pydantic import BaseModel
import pandas as pd
class SomeModel(BaseModel):
col1: str
col2: str
data = [SomeModel(**{'col1': 'foo', 'col2': 'bar'})] * 10
pd.DataFrame(data)
输出
>> 0 1
>> 0 (col1, foo) (col2, bar)
>> 1 (col1, foo) (col2, bar)
>> ...
通过这种方式,列被加载为数据。一种解决方法是执行以下操作:
pd.DataFrame([model.dict() for model in data])
输出
>> col1 col2
>> 0 foo bar
>> 1 foo bar
>> ...
但是对于更大的数据量来说,这种方法有点慢。是否有更快的方式?
vars(s)
添加到比较中(如果在性能上相同,它应该是更具 Python 风格的替代方案,而不是s.__dict__
)? - Dev-iL