pandera.core.pandas.container.DataFrameSchema#
- class pandera.core.pandas.container.DataFrameSchema(columns=None, checks=None, index=None, dtype=None, coerce=False, strict=False, name=None, ordered=False, unique=None, report_duplicates='all', unique_column_names=False, title=None, description=None)[source]#
A light-weight pandas DataFrame validator.
Initialize DataFrameSchema validator.
- Parameters
columns (mapping of column names and column schema component.) – a dict where keys are column names and values are Column objects specifying the datatypes and properties of a particular column.
checks (
Union[Check,List[Union[Check,Hypothesis]],None]) – dataframe-wide checks.index – specify the datatypes and properties of the index.
dtype (
Union[str,type,DataType,Type,ExtensionDtype,dtype,None]) – datatype of the dataframe. This overrides the data types specified in any of the columns. If a string is specified, then assumes one of the valid pandas string values: http://pandas.pydata.org/pandas-docs/stable/basics.html#dtypes.coerce (
bool) – whether or not to coerce all of the columns on validation. This has no effect on columns wheredtype=Nonestrict (
Union[bool,Literal[‘filter’]]) – ensure that all and only the columns defined in the schema are present in the dataframe. If set to ‘filter’, only the columns in the schema will be passed to the validated dataframe. If set to filter and columns defined in the schema are not present in the dataframe, will throw an error.ordered (
bool) – whether or not to validate the columns order.unique (
Union[str,List[str],None]) – a list of columns that should be jointly unique.report_duplicates (
Union[Literal[‘exclude_first’],Literal[‘exclude_last’],Literal[‘all’]]) – how to report unique errors - exclude_first: report all duplicates except first occurence - exclude_last: report all duplicates except last occurence - all: (default) report all duplicatesunique_column_names (
bool) – whether or not column names must be unique.title (
Optional[str]) – A human-readable label for the schema.description (
Optional[str]) – An arbitrary textual description of the schema.
- Raises
SchemaInitError – if impossible to build schema from parameters
- 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), ... })
Use the pandas API to define checks, which takes a function with the signature:
pd.Series -> Union[bool, pd.Series]where the output series contains boolean values.>>> 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), ... ]), ... })
See here for more usage details.
Attributes
BACKENDcoerceWhether to coerce series to specified type.
dtypeGet the dtype property.
dtypesA dict where the keys are column names and values are
DataTypes for the column.propertiesGet the properties of the schema for serialization purposes.
uniqueList of columns that should be jointly unique.
Methods
Initialize DataFrameSchema validator.
Create a copy of the
DataFrameSchemawith extra columns.Coerce object to the expected type.
Generate an example of a particular size.
Create DataFrameSchema from json file.
Create DataFrameSchema from yaml file.
Same as the
dtypeproperty, but expands columns whereregex == Truebased on the supplied dataframe.Removes columns from a
DataFrameSchemaand returns a new copy.Rename columns using a dictionary of key-value pairs.
A method for resetting the
Indexof aDataFrameSchemaSelect subset of columns in the schema.
A method for setting the
Indexof aDataFrameSchema, via an existingColumnor list of columns.Create a
hypothesisstrategy for generating a DataFrame.Write DataFrameSchema to json file.
Create DataFrameSchema from yaml file.
Write DataFrameSchema to yaml file.
Create copy of a
DataFrameSchemawith updated column properties.Create copy of a
DataFrameSchemawith updated column properties.Check if all columns in a dataframe have a column in the Schema.
Alias for
DataFrameSchema.validate()method.