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

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

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

  1. import pandera as pa
  2. from pandera import Column, DataFrameSchema, Check, Index
  3. schema = DataFrameSchema(
  4. columns={
  5. "column1": pa.Column(int),
  6. },
  7. index=pa.Index(int, name="index_name"),
  8. )
  9. # raises the error as expected
  10. schema.validate(
  11. pd.DataFrame({"column1": [1, 2, 3]}, index=pd.Index([1, 2, 3], name="index_incorrect_name"))
  12. )

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

qybjjes1

qybjjes11#

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

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

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

wf82jlnq

wf82jlnq2#

你可以这样做-

  1. import pandera as pa
  2. from pandera.typing import Index, Series
  3. class Schema(pa.SchemaModel):
  4. idx: Index[int] = pa.Field(ge=0, check_name=True)
  5. column1: Series[int]
  6. df = pd.DataFrame({"column1": [1, 2, 3]}, index=pd.Index([1, 2, 3], name="index_incorrect_name"))
  7. Schema.validate(df)

字符串

qacovj5a

qacovj5a3#

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

相关问题