pandas 如何在Pandera中使用SchemaModel验证XML索引

baubqpgj  于 2023-11-15  发布在  其他
关注(0)|答案(3)|浏览(152)

我可以像这样使用DataFrameSchema验证DataFrame索引:

import pandera as pa

from pandera import Column, DataFrameSchema, Check, Index

schema = DataFrameSchema(
    columns={
        "column1": pa.Column(int),
    },
    index=pa.Index(int, name="index_name"),
)
# raises the error as expected
schema.validate(
    pd.DataFrame({"column1": [1, 2, 3]}, index=pd.Index([1, 2, 3], name="index_incorrect_name")) 
)

字符串
有没有一种方法可以使用SchemaModel来做同样的事情?

qybjjes1

qybjjes11#

找到an answer in GitHub
可以使用pa.typing.Index对索引进行类型注解。

class Schema(pa.SchemaModel):
    column1: pa.typing.Series[int]
    index_name: pa.typing.Index[int] = pa.Field(check_name=True)

字符串
了解如何验证MultiIndex索引:https://pandera.readthedocs.io/en/stable/schema_models.html#multiindex

wf82jlnq

wf82jlnq2#

你可以这样做-

import pandera as pa
from pandera.typing import Index, Series

class Schema(pa.SchemaModel):
    idx: Index[int] = pa.Field(ge=0, check_name=True)
    column1: Series[int]

df = pd.DataFrame({"column1": [1, 2, 3]}, index=pd.Index([1, 2, 3], name="index_incorrect_name")) 

Schema.validate(df)

字符串

qacovj5a

qacovj5a3#

从pandera 0.14.0开始,SchemaModel只是DataFrameModel的别名。在可预见的未来,SchemaModel将继续作为指定DataFrame模型类型的有效方法,并将在0.20.0版本中弃用。
来源:Pandera Documentation

相关问题