freshcrate
Skin:/
Home > Frameworks > pandera

pandera

A light-weight and flexible data validation and testing tool for statistical data objects.

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

<br> <div align="center"><a href="https://www.union.ai/pandera"><img src="docs/source/_static/pandera-banner.png" width="400"></a></div> <h1 align="center"> The Open-source Framework for Dataset Validation </h1> <p align="center"> 📊 🔎 ✅ </p> <p align="center"> <i>Data validation for scientists, engineers, and analysts seeking correctness.</i> </p> <br> [![CI Build](https://img.shields.io/github/actions/workflow/status/unionai-oss/pandera/ci-tests.yml?branch=main&label=tests&style=for-the-badge)](https://github.com/unionai-oss/pandera/actions/workflows/ci-tests.yml?query=branch%3Amain) [![Documentation Status](https://readthedocs.org/projects/pandera/badge/?version=stable&style=for-the-badge)](https://pandera.readthedocs.io/en/stable/?badge=stable) [![PyPI version shields.io](https://img.shields.io/pypi/v/pandera.svg?style=for-the-badge)](https://pypi.org/project/pandera/) [![PyPI license](https://img.shields.io/pypi/l/pandera.svg?style=for-the-badge)](https://pypi.python.org/pypi/) [![pyOpenSci](https://go.union.ai/pandera-pyopensci-badge)](https://github.com/pyOpenSci/software-review/issues/12) [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://img.shields.io/badge/repo%20status-Active-Green?style=for-the-badge)](https://www.repostatus.org/#active) [![Documentation Status](https://readthedocs.org/projects/pandera/badge/?version=latest&style=for-the-badge)](https://pandera.readthedocs.io/en/latest/?badge=latest) [![codecov](https://img.shields.io/codecov/c/github/unionai-oss/pandera?style=for-the-badge)](https://codecov.io/gh/unionai-oss/pandera) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/pandera.svg?style=for-the-badge)](https://pypi.python.org/pypi/pandera/) [![DOI](https://img.shields.io/badge/DOI-10.5281/zenodo.3385265-blue?style=for-the-badge)](https://doi.org/10.5281/zenodo.3385265) [![asv](http://img.shields.io/badge/benchmarked%20by-asv-green.svg?style=for-the-badge)](https://pandera-dev.github.io/pandera-asv-logs/) [![Total Downloads](https://img.shields.io/pepy/dt/pandera?style=for-the-badge&color=blue)](https://pepy.tech/project/pandera) [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pandera?style=for-the-badge)](https://anaconda.org/conda-forge/pandera) [![Slack](https://img.shields.io/badge/Slack-4A154B?logo=slack&logoColor=fff&style=for-the-badge)](https://flyte-org.slack.com/archives/C08FDTY2X3L) Pandera is a [Union.ai](https://union.ai/blog-post/pandera-joins-union-ai) open source project that provides a flexible and expressive API for performing data validation on dataframe-like objects. The goal of Pandera is to make data processing pipelines more readable and robust with statistically typed dataframes. ## Install Pandera supports [multiple dataframe libraries](https://pandera.readthedocs.io/en/stable/supported_libraries.html), including [pandas](http://pandas.pydata.org), [polars](https://docs.pola.rs/), [pyspark](https://spark.apache.org/docs/latest/api/python/index.html), and more. To validate `pandas` DataFrames, install Pandera with the `pandas` extra: **With `pip`:** ``` pip install 'pandera[pandas]' ``` **With `uv`:** ``` uv pip install 'pandera[pandas]' ``` **With `conda`:** ``` conda install -c conda-forge pandera-pandas ``` ## Get started First, create a dataframe: ```python import pandas as pd import pandera.pandas as pa # data to validate df = pd.DataFrame({ "column1": [1, 2, 3], "column2": [1.1, 1.2, 1.3], "column3": ["a", "b", "c"], }) ``` Validate the data using the object-based API: ```python # define a schema schema = pa.DataFrameSchema({ "column1": pa.Column(int, pa.Check.ge(0)), "column2": pa.Column(float, pa.Check.lt(10)), "column3": pa.Column( str, [ pa.Check.isin([*"abc"]), pa.Check(lambda series: series.str.len() == 1), ] ), }) print(schema.validate(df)) # column1 column2 column3 # 0 1 1.1 a # 1 2 1.2 b # 2 3 1.3 c ``` Or validate the data using the class-based API: ```python # define a schema class Schema(pa.DataFrameModel): column1: int = pa.Field(ge=0) column2: float = pa.Field(lt=10) column3: str = pa.Field(isin=[*"abc"]) @pa.check("column3") def custom_check(cls, series: pd.Series) -> pd.Series: return series.str.len() == 1 print(Schema.validate(df)) # column1 column2 column3 # 0 1 1.1 a # 1 2 1.2 b # 2 3 1.3 c ``` > [!WARNING] > Pandera `v0.24.0` introduces the `pandera.pandas` module, which is now the > (highly) recommended way of defining `DataFrameSchema`s and `DataFrameModel`s > for `pandas` data structures like `DataFrame`s. Defining a dataframe schema from > the top-level `pandera` module will produce a `FutureWarning`: > > ```python > import pandera as pa > > schema = pa.DataFrameSchema({"col": pa.Column(s

Release History

VersionChangesUrgencyDate
0.31.1Imported from PyPI (0.31.1)Low4/21/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1High4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Medium4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.1## What's Changed * Fix pandera[polars] import without pandas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2291 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.31.0...v0.31.1Low4/15/2026
v0.31.0# â­ī¸ Highlights This is the release for all of you geospatial and multidimensional array-handling folks out there. ## `xarray` support Pandera now provides full support for `xarray` 🚀 Write a `DatasetSchema` with the object-based API ```python import numpy as np import xarray as xr import pandera.xarray as pa schema = pa.DatasetSchema( data_vars={ "temperature": pa.DataVar(dtype=np.float64, dims=("x", "y")), "pressure": pa.DataVar(dtype=np.float64, diMedium4/14/2026
v0.31.0rc1## What's Changed * Bugfix/2213: handle schema errors correctly when strict and ordered are True by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2242 * fix column errors by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2244 * Bugfix/polars performance warning and housekeeping by @fabianbergermann in https://github.com/unionai-oss/pandera/pull/2254 * Fix pandas typing empty-list constructor inference (#2247) by @RedZapdos123 in https://github.com/unionai-oss/panderaMedium4/9/2026
v0.30.1## What's Changed * Refactor Pandera accessors to use schema registry for managing schemas by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2241 * polars: support instance types by @paramsehrdl in https://github.com/unionai-oss/pandera/pull/2239 ## New Contributors * @paramsehrdl made their first contribution in https://github.com/unionai-oss/pandera/pull/2239 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.30.0...v0.30.1Low3/18/2026
v0.30.0# â­ī¸ Highlight Pandera now supports Pandas >= 3! ## What's Changed * Support pandas 3.0 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2214 * Replace `pre-commit` with `prek` and fix existing violations by @Dev-iL in https://github.com/unionai-oss/pandera/pull/2225 * Remove vestigial `ordering` parameter from polars `Categorical` by @Dev-iL in https://github.com/unionai-oss/pandera/pull/2226 * Add AGENTS.md by @Dev-iL in https://github.com/unionai-oss/pandera/pull/2224 Low3/16/2026
v0.29.0## â­ī¸ Highlight Pandera now supports collection types containing dataframes, shoutout to @garethellis0 with an amazing first contribution! ```python @pa.check_types def process_tuple_and_return_dict( dfs: tuple[DataFrame[OnlyZeroesSchema], DataFrame[OnlyOnesSchema]], ) -> dict[str, DataFrame[OnlyZeroesSchema]]: return { "foo": dfs[0], "bar": dfs[0] } result = process_tuple_and_return_dict(( pd.DataFrame({"a": [0, 0]}), pd.DataFrame({"a": [Low1/29/2026
v0.28.1## What's Changed * fix bugs in Check interface and Field by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2203 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.28.0...v0.28.1Low1/8/2026
v0.28.0## â­ī¸ Highlight Pandera now supports Pyspark 4 🚀 ## What's Changed * refactor(pyspark): restructure pyspark components by @ELC in https://github.com/unionai-oss/pandera/pull/2007 * add support for pyspark 4 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2193 * Decouple import dependencies for io serialization formats by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2195 * Use `get_annotations` instead of direct `__annotations__` access by @amerberg in httpsLow1/6/2026
v0.27.1## What's Changed * enhancement #2122 by @Jarek-Rolski in https://github.com/unionai-oss/pandera/pull/2177 * Fix failure_cases index value for MultiIndex schema errors by @amerberg in https://github.com/unionai-oss/pandera/pull/2186 * handle new numpy 2.4.0 ValueError when type is not recognized by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2191 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.27.0...v0.27.1Low12/22/2025
v0.27.0## â­ī¸ Highlight Pandera now supports Python 3.14! We also dropped support for Python 3.9 ## What's Changed * `scipy-stubs` by @jorenham in https://github.com/unionai-oss/pandera/pull/2121 * bugfix: set `SPARK_LOCAL_IP` to `127.0.0.1` if not set. by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2123 * fix: collect `failure_cases` in `check_column_values_are_unique` by @MikeEvansLarah in https://github.com/unionai-oss/pandera/pull/2120 * Adding import to code example in dataLow11/25/2025
v0.27.0b0## What's Changed * `scipy-stubs` by @jorenham in https://github.com/unionai-oss/pandera/pull/2121 * bugfix: set `SPARK_LOCAL_IP` to `127.0.0.1` if not set. by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2123 * fix: collect `failure_cases` in `check_column_values_are_unique` by @MikeEvansLarah in https://github.com/unionai-oss/pandera/pull/2120 * Adding import to code example in data_synthesis_strategies.md by @OwenLund in https://github.com/unionai-oss/pandera/pull/2126 * PiLow11/23/2025
v0.26.1## What's Changed * fix MultiIndex check regression by @amerberg in https://github.com/unionai-oss/pandera/pull/2116 * implement multiindex_strict and multiindex_unique add test cases by @amerberg in https://github.com/unionai-oss/pandera/pull/2114 * Bugfix: #2058 Check_types for callable by @ybressler in https://github.com/unionai-oss/pandera/pull/2069 ## New Contributors * @ybressler made their first contribution in https://github.com/unionai-oss/pandera/pull/2069 **Full Changelog**:Low8/26/2025
v0.26.0## â­ī¸ Highlight đŸ“Ŗ Pandera now supports Python 3.13! Now go forth and use [bare forward reference](https://peps.python.org/pep-0649/) types to your hearts content 🤗 ## What's Changed * Enh/future annotations py3.13 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1980 * fix pyspark check registration by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2087 * remove top-level pandera __init__ import warning by @cosmicBboy in https://github.com/unionai-oss/pandera/Low8/13/2025
v0.25.0## â­ī¸ Highlight Pandera now supports [Ibis](https://ibis-project.org/) đŸĻŠ! You can now validate data on all [available ibis backends](https://ibis-project.org/backends/support/matrix) using the `pandera.ibis` module. In-memory table example: ```python import ibis import pandera.ibis as pa class Schema(pa.DataFrameModel): state: str city: str price: int = pa.Field(in_range={"min_value": 5, "max_value": 20}) t = ibis.memtable( { 'state': ['FL','FL','FLLow7/8/2025
v0.25.0rc0## What's Changed * Add Polars pydantic integration with format support and native JSON schema generation by @halicki in https://github.com/unionai-oss/pandera/pull/1979 * exclude python 3.12 and pyspark combo in ci by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/2005 * Delete previously-added foo.txt and new_example.py by @deepyaman in https://github.com/unionai-oss/pandera/pull/2013 * Pin PySpark due to test failures/incompatibilities by @deepyaman in https://github.com/unionLow7/7/2025
v0.24.0## ✨ Highlights ✨ ### Import `pandera.pandas` to define schemas for `pandas` objects ## 🚨 Breaking Change `pandera==0.24.0` has dropped the dependency on `pandas` and `numpy` and has introduced a `pandas` extra. This will break any users who relied on `pandas` as a the transitive dependency of `pandera` to install `pandas`. To remediate this, do the following: ### Install `pandas` explicitly or use the `pandas` extra ```bash pip install 'pandera[pandas]' # recommended # or piLow5/15/2025
v0.24.0rc0## ✨ Highlights ✨ ### Import `pandera.pandas` to define schemas for `pandas` objects ## 🚨 Breaking Change `pandera==0.24.0` has dropped the dependency on `pandas` and `numpy` and has introduced a `pandas` extra. This will break any users who relied on `pandas` as a the transitive dependency of `pandera` to install `pandas`. To remediate this, do the following: ### Install `pandas` explicitly or use the `pandas` extra ```bash pip install pandas pandera # or pip install 'panderaLow4/25/2025
v0.23.1## What's Changed * handle None dtype when constructing json schema from DataFrameModel by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1931 * Fix: 1933 - @pa.dataframe_check pass the check_args to the class method by @danield-catalyst in https://github.com/unionai-oss/pandera/pull/1934 * :bug: add field types for ExtensionDtype by @mauro-dribia in https://github.com/unionai-oss/pandera/pull/1929 * fix the reversion of schema component mutations by @cosmicBboy in https://githubLow3/8/2025
v0.23.0## What's Changed * Create empty dataframe from Pandas DataFrame Model by @mamo3gr in https://github.com/unionai-oss/pandera/pull/1880 * bugfix/1835: Keep nulls in polars when dropping invalid rows and nullable=True by @baldwinj30 in https://github.com/unionai-oss/pandera/pull/1890 * Enhancment/1886 Add json_normalize to pandas read formats by @Jarek-Rolski in https://github.com/unionai-oss/pandera/pull/1892 * only call parsers once by @cosmicBboy in https://github.com/unionai-oss/pandera/puLow3/1/2025
v0.23.0b2## What's Changed * Create empty dataframe from Pandas DataFrame Model by @mamo3gr in https://github.com/unionai-oss/pandera/pull/1880 * bugfix/1835: Keep nulls in polars when dropping invalid rows and nullable=True by @baldwinj30 in https://github.com/unionai-oss/pandera/pull/1890 * Enhancment/1886 Add json_normalize to pandas read formats by @Jarek-Rolski in https://github.com/unionai-oss/pandera/pull/1892 * only call parsers once by @cosmicBboy in https://github.com/unionai-oss/pandera/puLow3/1/2025
v0.22.1## What's Changed * bugfix: check_input decorator handles functions with kwargs by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1888 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.22.0...v0.22.1Low12/26/2024
v0.22.0# â­ī¸ Highlight In this release, dependencies on `multimethod` and `wrapt` were removed and optimizations were made to speed up validation performance by up to 4x (depending on the validation rules. For simple cases speedup is ~4x see [here](https://github.com/unionai-oss/pandera/issues/1879)). ## What's Changed * change order of Engine datatype resolution by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1869 * Add missing Polars data types to docs by @ksolarski in https://giLow12/23/2024
v0.21.1## What's Changed * fix: remove Category inheritance from ArrowDictionary by @darenliang in https://github.com/unionai-oss/pandera/pull/1848 * fix: preserve Check options in schema statistics roundtrip by @alexismanuel in https://github.com/unionai-oss/pandera/pull/1844 * fix validation and coercion on init bug by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1868 ## New Contributors * @darenliang made their first contribution in https://github.com/unionai-oss/pandera/pull/18Low12/4/2024
v0.21.0## â­ī¸ Highlights This release optimizes the import and schema creation runtime so that importing pandera and creating a schema (without doing any validation) happens in ~5 ms (before it would be >800ms). It also updates the docs to use `docsearch` for a better search experience. * Defer backend registration to validation time by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1818 * Reduce import overhead to improve runtime by @cosmicBboy in https://github.com/unionai-oss/pandeLow11/15/2024
v0.20.4## What's Changed * Bugfix/1732: Fix misleading error when columns are missing and lazy=True by @benlee1284 in https://github.com/unionai-oss/pandera/pull/1752 * Bugfix/1644: refactor geopandas and pyarrow dtypes to avoid top-level import by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1753 * regex column errors should report the correct column name by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1754 * bugfix/1657: use rename instead of select in polars check bacLow9/3/2024
v0.20.3## What's Changed * update dtype api reference docs by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1745 * handle deprecated methods/arguments in polars v1 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1746 * handle case when pandera is run with optimized python mode by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1749 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.20.2...v0.20.3Low7/17/2024
v0.20.2# â­ī¸ Highlights: * feat: add remaining pyarrow types by @aaravind100 in https://github.com/unionai-oss/pandera/pull/1720 * Bugfix/1724: Add support for polars v1 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1725 ## What's Changed * Depend on OpenJDK>8.0.0 for PySpark support by @billyvinning in https://github.com/unionai-oss/pandera/pull/1701 * Update polars checks.py to avoid calling the check function multiple times by @jcadam14 in https://github.com/unionai-oss/pandeLow7/16/2024
v0.20.1## What's Changed * fix: raising type error when pyarrow is not installed by @aaravind100 in https://github.com/unionai-oss/pandera/pull/1717 * feat: add pyarrow list and struct to pandas engine by @aaravind100 in https://github.com/unionai-oss/pandera/pull/1699 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.20.0...v0.20.1Low6/27/2024
v0.20.0## â­ī¸ Highlights - Pandera now supports [pyarrow](https://arrow.apache.org/docs/python/index.html) datatypes in the pandera validation engine! Big shoutout to @aaravind100 for the heavy lifting here. - Added compatibility for numpy v2. - Add compatibility for polars v1 - `pandera.SchemaModel` is now deprecated, use `pandera.DataFrameModel` instead. ## What's Changed * Bugfix/1631: Series[Annotated[...]] DataFrameModel types should correctly create a DataFrameSchema by @cosmicBboy in hLow6/26/2024
v0.19.3## What's Changed * bugfix: timezone-agnostic datetime in polars works in DataFrameModel by @cosmicBboy #1638 * Bugfix/1631: Series[Annotated[...]] DataFrameModel types should correctly create a DataFrameSchema by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1633 * Add missing pandas import line. by @kyleweise in https://github.com/unionai-oss/pandera/pull/1635 ## New Contributors * @kyleweise made their first contribution in https://github.com/unionai-oss/pandera/pull/1635Low5/14/2024
v0.19.2## What's Changed * bugfix: nullable check float dtype handles nan and null by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1627 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.19.1...v0.19.2Low5/8/2024
v0.19.1## What's Changed * Bugfix/1616: Polars data container validation by @cstabnick in https://github.com/unionai-oss/pandera/pull/1623 * use google colab instead of jupyterlite by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1618 ## New Contributors * @cstabnick made their first contribution in https://github.com/unionai-oss/pandera/pull/1623 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.19.0...v0.19.1Low5/8/2024
v0.19.0# ✨ Highlights ✨ đŸ“Ŗ Pandera now supports validation of `polars.DataFrame` and `polars.LazyFrame` đŸģâ€â„ī¸! You can now do this: ```python import pandera.polars as pa import polars as pl class Schema(pa.DataFrameModel): state: str city: str price: int = pa.Field(in_range={"min_value": 5, "max_value": 20}) lf = pl.LazyFrame( { 'state': ['FL','FL','FL','CA','CA','CA'], 'city': [ 'Orlando', 'Miami', 'TampaLow5/6/2024
v0.19.0b4## What's Changed * fix pyspark tests when run on full test suite by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1593 * Bugfix/1580 by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1596 * Set pandas_io.from_frictionless_schema to use a raw string for docs by @mark-thm in https://github.com/unionai-oss/pandera/pull/1597 * Add a generic Series type for polars by @baldwinj30 in https://github.com/unionai-oss/pandera/pull/1595 * Add StructType and DDL extraction fromLow5/3/2024
v0.19.0b3## What's Changed * fix pyspark import error by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1591 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.19.0b2...v0.19.0b3Low4/20/2024
v0.19.0b2## What's Changed * do not format if test is not necessary by @mattB1989 in https://github.com/unionai-oss/pandera/pull/1530 * Register default backends when restoring state by @alkment in https://github.com/unionai-oss/pandera/pull/1550 * Bump actions/setup-python from 4 to 5 by @dependabot in https://github.com/unionai-oss/pandera/pull/1452 * fix: prevent environment pollution when importing pyspark by @sam-goodwin in https://github.com/unionai-oss/pandera/pull/1552 * use rst to speed up Low4/19/2024
v0.19.0b1## What's Changed * Support polars DataFrames, LazyFrames by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1373 * bugfix: optional columns in polars schema should no longer raise errors when not present by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1532 * `check_nullable` does not uselessly compute `isna()` anymore in pandas backend by @smarie in https://github.com/unionai-oss/pandera/pull/1538 * Polars LazyFrames are validated at the schema-level by default by @Low4/5/2024
v0.19.0b0## What's Changed * Support polars DataFrames, LazyFrames by @cosmicBboy, @AndriiG13, and @FilipAisot in https://github.com/unionai-oss/pandera/pull/1373 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.18.3...v0.19.0b0Low3/15/2024
v0.18.3## What's Changed * bugfix: add index validation to SeriesSchema by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1524 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.18.2...v0.18.3Low3/11/2024
v0.18.2Release v0.18.2Low3/11/2024
v0.18.1## ✨ Highlights ✨ ### Granular control of pandas validation https://github.com/unionai-oss/pandera/pull/1490 There is now support for granular control of schema-level or data-level validations. This can be done via the `PANDERA_VALIDATION_DEPTH` environment variable. Schema-level (or metadata) validation includes things like column name checks and column data types, while data-level validation involves checks that operate on actual data values. ``` export PANDERA_VALIDATION_DEPTH= SCHELow3/11/2024
v0.18.0## ✨ Highlight ✨ Pandera now supports the configuration environment variable `PANDERA_VALIDATION_ENABLED`. `export PANDERA_VALIDATION_ENABLED=False` now globally deactivates validation. ## What's Changed * Bump urllib3 from 2.0.4 to 2.0.7 by @dependabot in https://github.com/unionai-oss/pandera/pull/1383 * Bump urllib3 from 2.0.5 to 2.0.7 in /dev by @dependabot in https://github.com/unionai-oss/pandera/pull/1382 * Bump urllib3 from 2.0.4 to 2.0.7 in /ci by @dependabot in https://githubLow12/8/2023
v0.18.0b0Release v0.18.0b0Low12/8/2023
v0.17.2## What's Changed * improve pydantic model efficiency by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1358 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.17.1...v0.17.2Low9/30/2023
v0.17.1## What's Changed * bugfix: empty list/dicts and None values should be handled by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1347 * add unit tests by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1351 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.17.0...v0.17.1Low9/27/2023
v0.17.0## â­ī¸ Highlight This release adds support for [pydantic v2](https://docs.pydantic.dev/latest/). Pydantic < v2 should be supported for the foreseeable future. ## What's Changed * fix: docstrong for to_script by @tmcclintock in https://github.com/unionai-oss/pandera/pull/1266 * fix multimethod bug in pyspark by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1260 * Fix CI tests by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1303 * Very minor reworking of errorLow9/23/2023
v0.17.0b0## What's Changed * fix: docstrong for to_script by @tmcclintock in https://github.com/unionai-oss/pandera/pull/1266 * fix multimethod bug in pyspark by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1260 * Fix CI tests by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1303 * Very minor reworking of error message by @nathanjmcdougall in https://github.com/unionai-oss/pandera/pull/1304 * Fix typo in docs by @nathanjmcdougall in https://github.com/unionai-oss/pandera/pLow9/21/2023
v0.16.1## What's Changed * Use pandera-dev in envrc to match the environment.yml by @thomasjpfan in https://github.com/unionai-oss/pandera/pull/1264 * remove pyspark dep from common types by @cosmicBboy in https://github.com/unionai-oss/pandera/pull/1268 ## New Contributors * @thomasjpfan made their first contribution in https://github.com/unionai-oss/pandera/pull/1264 **Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.16.0...v0.16.1Low7/17/2023
v0.16.0## What's Changed * Use custom check strategies by @honno in https://github.com/unionai-oss/pandera/pull/1203 * Bugfix: check for presence of default attribute before calling by @kykyi in https://github.com/unionai-oss/pandera/pull/1191 * Remove outdated warning by @tpvasconcelos in https://github.com/unionai-oss/pandera/pull/1190 * Static type hint error on class pandera DataFrame by @manel-ab in https://github.com/unionai-oss/pandera/pull/1207 * Relax python_requires constraint by @danhjeLow7/16/2023
v0.16.0b1**Full Changelog**: https://github.com/unionai-oss/pandera/compare/v0.16.0b0...v0.16.0b1Low7/10/2023

Dependencies & License Audit

Loading dependencies...

Similar Packages

openapi-pydanticPydantic OpenAPI schema implementation0.5.1
schemathesisProperty-based testing framework for Open API and GraphQL based appsv4.21.1
ctranslate2Fast inference engine for Transformer modelsv4.8.0
cadwynProduction-ready community-driven modern Stripe-like API versioning in FastAPI7.0.0
tqdmFast, Extensible Progress Meterv4.68.1

More from pypi

markitdownUtility tool for converting various files to Markdown
fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production
djangoA high-level Python web framework that encourages rapid development and clean, pragmatic design.
flaskA simple framework for building complex web applications.

More in Frameworks

ctranslate2Fast inference engine for Transformer models
schemathesisProperty-based testing framework for Open API and GraphQL based apps
spec_driven_developSpec-Driven Develop is a platform-agnostic AI agent skill that automates the pre-development workflow for large-scale complex tasks. It is not a framework, not a runtime, not a package manager — it is
DrasilGenerate all the things (focusing on research software)