-
-
Notifications
You must be signed in to change notification settings - Fork 396
Home
Anish Raj edited this page May 23, 2026
·
1 revision
Welcome to the Arnio project wiki.
Arnio is a C++ accelerated data preparation toolkit for the Python data stack. It helps teams load messy CSV data, clean and validate it, profile quality issues, and hand the results back to pandas, NumPy, scikit-learn, DuckDB, Arrow, and related tools.
| Area | Details |
|---|---|
| Package | arnio |
| Current version | 1.18.0 |
| Python support | Python 3.9 through 3.14 |
| Core runtime | Python API with C++ / pybind11 backend |
| Main use cases | CSV parsing, cleaning, profiling, schema validation, pandas handoff |
| License | MIT |
- Getting Started - install Arnio and run a first cleaning workflow.
- Core Workflows - common data preparation patterns.
- API Overview - public API map by category.
- Integrations - pandas, NumPy, scikit-learn, DuckDB, Arrow, JSONL, and parquet notes.
- Contributor Guide - how to contribute focused PRs.
- Troubleshooting - common issues and fixes.
- Reads CSV, TSV, TXT, and JSONL data into
ArFrame. - Infers schemas without loading full datasets through
scan_csv. - Cleans data with composable steps such as
strip_whitespace,normalize_case,fill_nulls,drop_nulls, anddrop_duplicates. - Profiles datasets with
DataQualityReport. - Validates data contracts with
Schema,Field, and semantic validators. - Converts to and from pandas for downstream analysis.
- Provides optional integrations for Arrow, DuckDB, parquet, and scikit-learn workflows.
- Install Arnio and load a CSV file.
- Preview the frame and inspect inferred column types.
- Run a small cleaning pipeline.
- Generate a quality profile.
- Validate the cleaned data against a schema.
- Convert to pandas for modeling or reporting.
import arnio as ar
frame = ar.read_csv("messy_sales.csv", mode="permissive")
clean = ar.pipeline(frame, [
("strip_whitespace",),
("normalize_case", {"case_type": "lower"}),
("fill_nulls", {"value": 0.0, "subset": ["revenue"]}),
("drop_duplicates",),
])
report = ar.profile(clean)
df = ar.to_pandas(clean)- Repository: https://github.com/im-anishraj/arnio
- Website: https://arnio.vercel.app
- PyPI: https://pypi.org/project/arnio/
- Issues: https://github.com/im-anishraj/arnio/issues
- Discord: https://discord.gg/xsEw7r78M