pandera.api.pandas.components.MultiIndex

class pandera.api.pandas.components.MultiIndex(indexes, coerce=False, strict=False, name=None, ordered=True, unique=None)[source]

验证pandas DataFrame MultiIndex的类型和属性。

这个类继承自 DataFrameSchema 以利用其验证逻辑。

创建多重索引验证器。

Parameters:
  • 索引 (列表[索引]) – 每个层级的MultiIndex索引的索引验证器列表。

  • coerce (bool) – 是否在验证之前将MultiIndex强制转换为指定的数据类型

  • strict (bool) – 是否接受在 indexes 参数中未定义的 MultiIndex 列。

  • name (可选[str, None]) – 架构组件的名称

  • ordered (bool) – 是否验证索引顺序。

  • unique (Union[str, List[str], None]) – 一个应共同唯一的索引名称列表。

Example:

>>> import pandas as pd
>>> import pandera as pa
>>>
>>>
>>> schema = pa.DataFrameSchema(
...     columns={"column": pa.Column(int)},
...     index=pa.MultiIndex([
...         pa.Index(str,
...               pa.Check(lambda s: s.isin(["foo", "bar"])),
...               name="index0"),
...         pa.Index(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

请查看 这里 获取更多使用详情。

属性

BACKEND_REGISTRY

coerce

是否强制转换数据类型。

dtype

获取 dtype 属性。

dtypes

一个字典,其中键是列名,值是该列的 DataType

names

获取MultiIndex schema组件中的索引名称。

properties

获取用于序列化的架构属性。

unique

应该共同唯一的列列表。

方法

__init__(indexes, coerce=False, strict=False, name=None, ordered=True, unique=None)[source]

创建多重索引验证器。

Parameters:
  • 索引 (列表[索引]) – 每个层级的MultiIndex索引的索引验证器列表。

  • 强制转换 (bool) – 在验证之前是否将 MultiIndex 强制转换为指定的数据类型

  • 严格 (bool) – 是否接受在indexes参数中未定义的MultiIndex列。

  • name (可选[str, None]) – schema 组件的名称

  • ordered (bool) – 是否验证索引顺序。

  • unique (Union[str, List[str], None]) – 应该共同唯一的索引名称列表。

Example:

>>> import pandas as pd
>>> import pandera as pa
>>>
>>>
>>> schema = pa.DataFrameSchema(
...     columns={"column": pa.Column(int)},
...     index=pa.MultiIndex([
...         pa.Index(str,
...               pa.Check(lambda s: s.isin(["foo", "bar"])),
...               name="index0"),
...         pa.Index(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

请查看 这里 获取更多使用详情。

example(size=None)[source]

生成特定大小的示例。

Parameters:

size – 生成的 DataFrame 中的元素数量。

Return type:

MultiIndex

Returns:

pandas 数据框对象。

strategy(*, size=None)[source]

创建一个 hypothesis 策略来生成一个 DataFrame。

Parameters:
  • size – 生成的元素数量

  • n_regex_columns – 生成的正则表达式列的数量。

Returns:

生成 pandas DataFrame 对象的一种策略。

__call__(dataframe, head=None, tail=None, sample=None, random_state=None, lazy=False, inplace=False)[source]

此为 DataFrameSchema.validate() 方法的别名。

Parameters:
  • dataframe (pd.DataFrame) – 需要验证的数据框。

  • head (int) – 验证前 n 行。与 tailsample 重叠的行会被去重。

  • tail (int) – 验证最后 n 行。与 headsample 重叠的行会被去重。

  • 示例 (可选[int, None]) – 验证 n 行的随机样本。与 头部尾部 交叠的行会被去重。

  • random_state (可选[int, ]) – sample 参数的随机种子。

  • 懒惰 (bool) – 如果为 True,懒惰地对数据框进行所有验证检查,并引发一个 SchemaErrors。否则,立即抛出第一个出现的 SchemaError

  • inplace (bool) – 如果为 True,则对验证对象应用强制转换,否则创建数据的副本。

Return type:

~T数据对象