pip install batterydf

batterydf

Read, validate, clean, and visualize battery data from any source. One Python package for the entire workflow.

Read

Auto-detects the source format and normalizes it to BDF. Works with files, URLs, and registry IDs.

bdf.read("data.mpt")

Validate

Check that data conforms to the BDF specification — required columns, units, structure.

bdf.validate(df)

Clean

Fix time discontinuities, remove outliers, and repair common data quality issues.

bdf.clean(df)

Plot

Built-in visualization with dual axes and unit conversion. Static or interactive.

bdf.plot(df)

Beyond Read & Plot

Search & Discover

Find battery datasets across registries by keyword, chemistry, capacity, or manufacturer.

# Search by keyword or capacity
results = bdf.search("graphite")
results = bdf.search(">=3 Ah")

# Read directly from results
df = bdf.read(results[0]["url"])

Batch Ingest

Convert an entire folder of vendor files to BDF format in one command. Validates as it goes.

# Convert a whole directory
summary = bdf.ingest(
    "data/raw/",
    format="parquet"
)
print(summary["converted"])

Interactive Exploration

Launch an interactive plot with zoom, pan, and tooltips. Supports Plotly backend.

bdf.explore(df,
    xdata="Test Time / s",
    ydata=["Voltage / V"],
    backend="plotly"
)

Build a Registry

Crawl a data source and build a searchable index. Makes your datasets discoverable via bdf.search().

bdf.build_registry(
    "https://github.com/org/data",
    registry_dir="./registry"
)

Supported Equipment

batterydf auto-detects the source format. These are the equipment brands and file types currently supported.

Neware
CSV, NDA, NDAX
BioLogic
MPT, MPR
Arbin
CSV, RES
Maccor
TXT, CSV
Basytec
Native format
Digatron
Native format
Landt
Native format
Novonix
Native format
MATLAB
.mat files
Admiral Instruments
Squidstat

Missing your equipment? Open an issue

Try it now

$ pip install batterydf