skillfed

pyjanitor

Tools for cleaning pandas DataFrames

pyjanitor v0.32.23 383.2K downloads/30d#7,079 on PyPI1,500
Permissive license MIT Active released

What it is and what it does

pyjanitor is a pandas extension that adds a collection of data-cleaning methods designed to work as part of method chains. Instead of writing imperative pandas code with intermediate variable assignments, you can express a sequence of cleaning steps as a readable chain of method calls—each with an explicit verb name like clean_names(), remove_empty(), or rename_column(). The package is inspired by the R janitor package and the dplyr paradigm, bringing that fluent, declarative style to Python.

Under the hood, pyjanitor registers its functions as pandas DataFrame methods via pandas-flavor and depends on scipy, natsort, multipledispatch, and janitor-rs for its operations. It handles common preprocessing tasks: standardizing column names, removing null or empty rows and columns, identifying duplicates, encoding categorical data, splitting features and targets, coalescing columns, date conversions, and expanding delimited values into dummy variables. The package is actively maintained, supports Python 3.8 and later, and carries no known security vulnerabilities.

Use it for:

  • Clean messy column names (spaces, mixed case, special characters) in a single method call before analysis.
  • Chain multiple DataFrame transformations (drop nulls, rename columns, add computed fields) in a single readable expression.
  • Preprocess raw data exports (Excel, CSV) by removing empty rows and columns and standardizing formats in one pipeline.
  • Prepare machine learning datasets by splitting features and targets and encoding categorical variables declaratively.
  • Expand delimited or categorical columns into dummy-encoded variables for statistical modeling.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Extends pandas DataFrames with method-chainable data-cleaning functions, enabling readable, verb-based operations for common preprocessing tasks like column renaming, null removal, and data transformation.

Yes. pyjanitor solves a real readability and usability gap in pandas workflows. Low install friction, active maintenance, permissive MIT license, no known vulnerabilities, and strong adoption make it a safe, practical choice for teams that value readable data-cleaning code. Install it if you work with pandas and want method chains to replace imperative preprocessing logic.

Install

pyjanitor on PyPI

pip

pip install pyjanitor

uv

uv add pyjanitor

poetry

poetry add pyjanitor

Installing pyjanitor

Before you install

Low friction install with five runtime dependencies. Actively maintained—last commit 2026-08-11, 1500 repository stars. Supports Python 3.8 and later.

License in practice

MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.

Quickstart

import pandas as pd
import janitor

df = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [None]})
df = df.clean_names().remove_empty()

Requires Python 3.8 or later; janitor-rs (a Rust-based dependency) must compile on your platform.

Verify before relying

  • Performance characteristics when chaining many operations on large DataFrames.
  • Compatibility of janitor-rs compilation on all target platforms (Windows, macOS, Linux variants).
  • Extent of experimental submodules (finance, biology, chemistry, engineering, pyspark) and their stability.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 5 — natsort, pandas-flavor, multipledispatch, scipy, janitor-rs
Maintenance actively maintained — 129 days since the last release
Last repo commit
First released
Downloads 383,172/month — #7,079 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyjanitor-0.32.23-py3-none-any.whl

Keywords: pandas, data-cleaning, data-science, janitor

Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/Engineering

Tags

pandas data cleaning methodsdataframe preprocessing chainingcolumn name cleaningremove empty rows columnsdata wrangling pandasjanitor-style data preppandas method chaining verbs
data-cleaningpandas-extensionmethod-chaining

More Scientific/Engineering packages