小编Jer*_*rry的帖子

如何将 Pydantic BaseModel 列表转换为 Pandas Dataframe

我似乎找不到任何简单地将 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)
Run Code Online (Sandbox Code Playgroud)

输出

>>         0            1
>> 0  (col1, foo)  (col2, bar)
>> 1  (col1, foo)  (col2, bar)
>> ...
Run Code Online (Sandbox Code Playgroud)

通过这种方式,列被加载为数据。解决方法是执行以下操作

pd.Dataframe([model.dict() for model in data])
Run Code Online (Sandbox Code Playgroud)

输出

>>    col1 col2
>> 0  foo  bar
>> 1  foo  bar
>> ...
Run Code Online (Sandbox Code Playgroud)

然而,这种方法对于大量数据来说有点慢。有没有更快的方法?

python pandas pydantic

8
推荐指数
2
解决办法
2922
查看次数

标签 统计

pandas ×1

pydantic ×1

python ×1