pandera.api.polars.container.DataFrameSchema

class pandera.api.polars.container.DataFrameSchema(columns=None, checks=None, parsers=None, index=None, dtype=None, coerce=False, strict=False, name=None, ordered=False, unique=None, report_duplicates='all', unique_column_names=False, add_missing_columns=False, title=None, description=None, metadata=None, drop_invalid_rows=False)[source]

A polars LazyFrame 或 DataFrame 验证器。

与库无关的数据框架模式定义的基础类。

Parameters:
  • (映射 列名和列架构组件。) – 一个字典,其中键是列名,值是 列对象,指定特定列的数据类型和属性。

  • 检查 (Union[Check, List[Union[Check, Hypothesis]], None]) – 数据框范围内的检查。

  • 解析器 (联合[解析器, 列表[解析器], ]) – 数据框范围内的解析器。

  • 索引 – 指定索引的数据类型和属性。

  • dtype (可选[任何, ]) – 数据框的datatype。这将覆盖任何列中指定的数据类型。如果指定了字符串,则假定为有效的pandas字符串值之一: http://pandas.pydata.org/pandas-docs/stable/basics.html#dtypes

  • 强制转换 (bool) – 是否强制验证时的所有列。此设置会覆盖列或索引级别的任何强制设置。对dtype=None 的列没有影响。

  • 严格 (Union[bool, Literal[‘filter’]]) – 确保数据框中仅存在架构中定义的所有列。如果设置为‘filter’,只有架构中的列将被传递给验证的数据框。如果设置为filter且架构中定义的列不在数据框中,将抛出错误。

  • 名称 (可选[字符串, ]) – 模式的名称。

  • ordered (bool) – 是否验证列的顺序。

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

  • report_duplicates (Union[Literal[‘exclude_first’], Literal[‘exclude_last’], Literal[‘all’]]) – 如何报告唯一错误 - exclude_first: 报告除第一个出现外的所有重复项 - exclude_last: 报告除最后一个出现外的所有重复项 - all: (默认)报告所有重复项

  • unique_column_names (bool) – 列名是否必须唯一。

  • add_missing_columns (bool) – 添加缺失的列名,如果在列模式中指定了默认值,则使用默认值,如果列可以为空,则使用NaN。

  • 标题 (可选[str, None]) – 一个可供人类阅读的模式标签。

  • 描述 (可选[str, None]) – 一个任意的模式文本描述。

  • 元数据 (可选[字典, ]) – 一个可选的键值数据。

  • drop_invalid_rows (bool) – 如果为 True,将在验证时删除无效行。

Raises:

SchemaInitError – 如果无法从参数构建架构

Examples:

>>> import pandera as pa
>>>
>>> schema = pa.DataFrameSchema({
...     "str_column": pa.Column(str),
...     "float_column": pa.Column(float),
...     "int_column": pa.Column(int),
...     "date_column": pa.Column(pa.DateTime),
... })

使用pandas API定义检查,该检查接受一个具有以下签名的函数:pd.Series -> Union[bool, pd.Series],输出系列包含布尔值。

>>> schema_withchecks = pa.DataFrameSchema({
...     "probability": pa.Column(
...         float, pa.Check(lambda s: (s >= 0) & (s <= 1))),
...
...     # check that the "category" column contains a few discrete
...     # values, and the majority of the entries are dogs.
...     "category": pa.Column(
...         str, [
...             pa.Check(lambda s: s.isin(["dog", "cat", "duck"])),
...             pa.Check(lambda s: (s == "dog").mean() > 0.5),
...         ]),
... })

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

属性

BACKEND_REGISTRY

coerce

是否将系列强制转换为指定类型。

dtype

获取 dtype 属性。

dtypes

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

properties

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

unique

应该共同唯一的列列表。

方法

example(size=None, n_regex_columns=1)[source]

生成特定大小的示例。

Parameters:

size (可选[int, None]) – 生成的 DataFrame 中的元素数量。

Returns:

pandas 数据框对象。

警告

此方法在 polars 后端未实现。

static register_default_backends(check_obj_cls)[source]

注册默认后端。

此方法在get_backend方法中被调用,以便在验证时加载适当的验证后端,而不是在模式定义时。

该方法需要由模式子类实现。

strategy(*, size=None, n_regex_columns=1)[source]

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

Parameters:
  • size (可选[int, None]) – 生成的元素数量

  • n_regex_columns (int) – 生成的正则列的数量。

Returns:

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

警告

此方法在polars后端未实现。

validate(check_obj, head=None, tail=None, sample=None, random_state=None, lazy=False, inplace=False)[source]

根据模式验证一个 polars DataFrame。

Return type:

Union[LazyFrame, 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数据对象