{"id":1614,"library":"pandera","title":"Pandera Data Validation","description":"Pandera is a lightweight and flexible open-source Python library for data validation and testing statistical data objects, such as Pandas DataFrames and Series. It allows users to define schema objects to validate the structure, types, and values of data, ensuring data quality and preventing unexpected errors. The library is actively maintained, with version 0.30.1 currently available, and undergoes frequent minor releases.","status":"active","version":"0.30.1","language":"en","source_language":"en","source_url":"https://github.com/pandera-dev/pandera","tags":["data validation","pandas","polars","pyspark","schema","testing","data quality"],"install":[{"cmd":"pip install pandera","lang":"bash","label":"Core installation"},{"cmd":"pip install pandera[polars]","lang":"bash","label":"With Polars support"},{"cmd":"pip install pandera[pyspark]","lang":"bash","label":"With PySpark support"}],"dependencies":[{"reason":"Core DataFrame validation backend","package":"pandas","optional":false},{"reason":"Used for numerical operations and type handling","package":"numpy","optional":false},{"reason":"Optional backend for Polars DataFrame validation","package":"polars","optional":true},{"reason":"Optional backend for PySpark DataFrame validation","package":"pyspark","optional":true}],"imports":[{"symbol":"pandera","correct":"import pandera as pa"},{"symbol":"DataFrameSchema","correct":"from pandera import DataFrameSchema"},{"symbol":"Column","correct":"from pandera import Column"},{"symbol":"Check","correct":"from pandera import Check"},{"symbol":"SeriesSchema","correct":"from pandera import SeriesSchema"}],"quickstart":{"code":"import pandas as pd\nimport pandera as pa\nfrom pandera import Column, DataFrameSchema, Check\n\n# 1. Define a DataFrameSchema\nschema = DataFrameSchema(\n    columns={\n        \"id\": Column(int, Check.greater_than_or_equal_to(0)),\n        \"name\": Column(str, Check.str_matches(r\"^[A-Za-z]+$\")),\n        \"value\": Column(float, Check.in_range(0.0, 1.0))\n    },\n    # Optionally specify index validation\n    index=pa.Index(int, name=\"index\"),\n    # Ensure no extra columns exist\n    strict=True\n)\n\n# 2. Create a valid DataFrame\nvalid_df = pd.DataFrame({\n    \"id\": [1, 2, 3],\n    \"name\": [\"Alice\", \"Bob\", \"Charlie\"],\n    \"value\": [0.1, 0.5, 0.9]\n})\n\n# 3. Validate the DataFrame\ntry:\n    validated_df = schema.validate(valid_df)\n    print(\"Valid DataFrame validated successfully:\")\n    print(validated_df)\nexcept pa.errors.SchemaErrors as e:\n    print(f\"Validation failed unexpectedly for valid data: {e}\")\n\n# 4. Create an invalid DataFrame to demonstrate error handling\ninvalid_df = pd.DataFrame({\n    \"id\": [-1, 2, 3], # Fails 'greater_than_or_equal_to(0)'\n    \"name\": [\"Alice\", \"Bob1\", \"Charlie\"], # Fails 'str_matches'\n    \"value\": [0.1, 0.5, 1.5], # Fails 'in_range'\n    \"extra_col\": [1, 2, 3] # Fails 'strict=True'\n})\n\ntry:\n    schema.validate(invalid_df)\nexcept pa.errors.SchemaErrors as e:\n    print(\"\\nInvalid DataFrame caught by schema errors:\")\n    print(e.failure_cases)\n    print(f\"Total errors: {e.n_failures}\")\n","lang":"python","description":"This quickstart defines a `DataFrameSchema` with column and index constraints, then demonstrates validating both a valid and an invalid Pandas DataFrame. It also shows how to catch `SchemaErrors` and inspect `failure_cases`."},"warnings":[{"fix":"Upgrade to Python >= 3.10 or pin Pandera to <0.27.0.","message":"Pandera dropped support for Python 3.9 in version 0.27.0. Users on Python 3.9 must use an older Pandera version.","severity":"breaking","affected_versions":"<0.27.0"},{"fix":"Upgrade Pandera to >=0.27.1 if using Numpy >=2.4.0, or pin Numpy to an earlier version.","message":"Pandera v0.27.1 fixed a regression with `numpy==2.4.0`. Users on `pandera==0.27.0` paired with `numpy==2.4.0` may encounter `ValueError` related to type recognition.","severity":"breaking","affected_versions":"0.27.0"},{"fix":"If using Pandas 3.0+, ensure Pandera is updated to version 0.30.0 or later. If sticking to older Pandas, ensure your Pandera version is compatible (e.g., Pandera <0.30.0 with Pandas <3.0).","message":"Pandera v0.30.0 introduced support for Pandas >=3.0. While this is an enhancement, older Pandera versions (<0.30.0) are not compatible with Pandas 3.0 and will likely fail.","severity":"gotcha","affected_versions":"<0.30.0"},{"fix":"Install with appropriate extras, e.g., `pip install pandera[polars]` or `pip install pandera[pyspark]`.","message":"To use Pandera with alternative DataFrame backends like Polars or PySpark, you must install additional dependencies via extras (e.g., `pip install pandera[polars]`). Core installation only supports Pandas.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-04-09T00:00:00.000Z","next_check":"2026-07-08T00:00:00.000Z"}