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) – 是否验证列的顺序。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。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_REGISTRYcoerce是否将系列强制转换为指定类型。
dtype获取 dtype 属性。
dtypes一个字典,其中键是列名,值是该列的
DataType。properties获取用于序列化的架构属性。
unique应该共同唯一的列列表。
方法
- static register_default_backends(check_obj_cls)[source]¶
注册默认后端。
此方法在get_backend方法中被调用,以便在验证时加载适当的验证后端,而不是在模式定义时。
该方法需要由模式子类实现。
- strategy(*, size=None, n_regex_columns=1)[source]¶
创建一个
hypothesis策略来生成一个 DataFrame。- Parameters:
- 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()方法的别名。