pandera.MultiIndex.__init__

MultiIndex.__init__(indexes, coerce=False, strict=False, name=None)[source]

Create MultiIndex validator.

Parameters
  • indexes (List[Index]) – list of Index validators for each level of the MultiIndex index.

  • coerce (bool) – Whether or not to coerce the MultiIndex to the specified pandas_dtypes before validation

  • strict (bool) – whether or not to accept columns in the MultiIndex that aren’t defined in the indexes argument.

  • name (Optional[str]) – name of schema component

Example

>>> import pandas as pd
>>> import pandera as pa
>>>
>>>
>>> schema = pa.DataFrameSchema(
...     columns={"column": pa.Column(pa.Int)},
...     index=pa.MultiIndex([
...         pa.Index(pa.String,
...               pa.Check(lambda s: s.isin(["foo", "bar"])),
...               name="index0"),
...         pa.Index(pa.Int, name="index1"),
...     ])
... )
>>>
>>> df = pd.DataFrame(
...     data={"column": [1, 2, 3]},
...     index=pd.MultiIndex.from_arrays(
...         [["foo", "bar", "foo"], [0, 1, 2]],
...         names=["index0", "index1"],
...     )
... )
>>>
>>> schema.validate(df)
               column
index0 index1
foo    0            1
bar    1            2
foo    2            3

See here for more usage details.

Return type

None