我似乎找不到任何简单地将 Pydantic BaseModels 列表转换为 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
>> ...
但是,对于大量数据,这种方法有点慢。有更快的方法吗?