Skip to main content

Audit your pandas DataFrame before you trust it — missing values, cardinality and top categories in one call.

Project description

dfaudit logo

dfaudit

Know if you can trust your data before you use it.

A fast, modern data audit tool for pandas DataFrames -- built for analysts who need to assess data reliability, not just explore it.

PyPI version Python 3.10+ License: MIT


What is dfaudit?

dfaudit is a lightweight Python package for auditing pandas DataFrames. Before you clean, model, or report -- you need to know whether your data is reliable. dfaudit gives you that answer fast.

Think of it as an auditor's first pass: one call to understand how complete, consistent, and trustworthy your data actually is. Missing values, cardinality, dominant categories -- the things that tell you if the data holds up.

Install

pip install dfaudit

Quickstart

import pandas as pd
import dfaudit as dfa

df = pd.read_csv("https://raw.githubusercontent.com/pandas-dev/pandas/master/doc/data/titanic.csv")

dfa.overview(df)
dfa.missing_matrix(df)

What you get

overview(df) - Column-level data quality table

A styled summary table covering every column at once: dtypes, missing counts and percentages, unique value counts, mode, and top-3 categories - all color coded so problems jump out instantly.

overview table

missing — standard NaN / None / NaT values pandas considers null.

soft_missing — values that are technically non-null but meaningless in practice: empty strings, placeholder text, and numeric sentinel codes commonly used in legacy systems or exports. dfaudit flags these automatically:

  • Strings: "", "n/a", "na", "null", "none", "nan", "nil", "-", "--", "?", "unknown", "missing", "not available", "not applicable"
  • Numbers: -999, -9999, 9999, 99999

Missing percentage cells are highlighted red for high missingness, blue for high cardinality.

missing_matrix(df) - Row-level missingness visualization

A matrix plot that shows where your data is missing across every row, with a bar chart of missing percentages per column on the right. Spot correlated missingness, systematic gaps, and data loading issues that column-level stats miss entirely.

missing matrix

dfa.missing_matrix(df, style="vivid")

Why I built this

I work with a lot of different data on a daily basis. For years I carried the same audit snippets from notebook to notebook -- copy, paste, tweak, repeat. At some point I decided to stop doing that and package the most common data audit tasks into something reusable, with visuals I actually want to look at.

dfaudit is what I reach for now at the start of every new dataset. I hope it saves you the same time it saves me.

If you work with modern data and want to contribute -- please do, pull requests are very welcome.


Made by Ivan Kumeyko  ·  MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dfaudit-0.1.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dfaudit-0.1.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file dfaudit-0.1.0.tar.gz.

File metadata

  • Download URL: dfaudit-0.1.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for dfaudit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8aa51a81b65558cbf865fa18b82c28a2502b85aeb0a6c814d4d6c8ce4bd172c2
MD5 45fb4a3c88917130c51b47bdb1991079
BLAKE2b-256 602b183e1963a9e4dba7e1d44d6075c4f2f0a8e8112427fd79c4bc02ea4a302b

See more details on using hashes here.

File details

Details for the file dfaudit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dfaudit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for dfaudit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73a0b32e3727688b1bdd343a22962de7f1e1d042e856b16029e575751e602a2b
MD5 4912ab8dd2c26e1e8d499dfe83aa3937
BLAKE2b-256 7024850324e075b517c5d3cb13a016344ab40858296da21a434a652b1a62be7b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page