如何解决在 Pydantic
我正在使用 pydantic
并且想要创建包含 Pandas 数据框的类。
我在网上找了很长时间,没有找到任何东西。
我的自定义类型代码如下所示。我将数据帧的类型命名为 pd.DataFrame 但是
显然它不正确。有谁知道如何声明熊猫数据框类型?
import pandas as pd
from pydantic import BaseModel
class SubModelInput(BaseModel):
a: pd.DataFrame
b: pd.DataFrame
class ModelInput(BaseModel):
SubModelInput: SubModelInput
a: pd.DataFrame
b: pd.DataFrame
c: pd.DataFrame
感谢您的帮助!
解决方法
如果正确地明白你的目的是建立用于一个Python的类型的提示pd.Dataframe
。我想您可以使用以下实现:
import pandas as pd
from pydantic import BaseModel
from typing import TypeVar
PandasDataFrame = TypeVar('pandas.core.frame.DataFrame')
class SubModelInput(BaseModel):
a: PandasDataFrame
b: PandasDataFrame
class ModelInput(BaseModel):
SubModelInput: SubModelInput
a: PandasDataFrame
b: PandasDataFrame
c: PandasDataFrame
data_frame = pd.DataFrame([{"a": "foo","b": "bar"}])
sub_model = SubModelInput(a=data_frame,b=data_frame)
model = ModelInput(a=data_frame,b=data_frame,c=data_frame,SubModelInput=sub_model)
model.dict()
# {'SubModelInput': {'a': a b
# 0 foo bar,'b': a b
# 0 foo bar},'a': a b
# 0 foo bar,'b': a b
# 0 foo bar,'c': a b
# 0 foo bar}
,
您可以激活Arbitrary Types Allowed:
import pandas as pd
from pydantic import BaseModel
class SubModelInput(BaseModel):
a: pd.DataFrame
b: pd.DataFrame
class Config:
arbitrary_types_allowed = True
class ModelInput(BaseModel):
SubModelInput: SubModelInput
a: pd.DataFrame
b: pd.DataFrame
c: pd.DataFrame
class Config:
arbitrary_types_allowed = True
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。