You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Pandas is incredible for analysis. It is notoriously slow and memory-hungry for ingesting and cleaning raw CSVs.** <br/>
26
+
> Arnio exists to do exactly one thing: intercept your messy CSVs, clean them natively in C++, and hand you a pristine Pandas DataFrame in half the time.
Data science in Python usually starts with the same messy chore: loading a massive CSV file, hunting down nulls, stripping whitespace, and normalizing column types.
34
+
Every data project starts the same way. You load a CSV. It crashes your RAM. You load it again in chunks. You find random nulls, weird capitalization, and trailing whitespaces. You write a 15-line script chaining `.apply()`, `.dropna()`, and `.str.strip()`. You copy-paste this script into your next 5 Jupyter notebooks.
27
35
28
-
**arnio** handles the slowest, most repetitive part of working with tabular data by pushing the heavy lifting down to a highly optimized C++ core (via `pybind11`). It parses the CSV natively, runs a declarative cleaning pipeline, and only hands the data back to Python as a standard `pandas.DataFrame` when it's pristine.
36
+
It's slow. It's unreadable. It's error-prone.
29
37
30
-
- 🚀 **C++ Speed**: Significantly lower memory footprint and faster parsing than standard `pd.read_csv`.
31
-
- 🧹 **Declarative Pipelines**: Clean your data with a reproducible array of named steps. No scattered method chains.
32
-
- 🔍 **Zero-cost Previews**: Peek at schemas with `ar.scan_csv()` without loading the entire file.
33
-
- 🐼 **Pandas Native**: Arnio is designed as a *pre-processor*, seamlessly emitting `pd.DataFrame` so your downstream ML and analysis workflows remain unchanged.
38
+
## ✨ The Solution: Arnio
39
+
40
+
**Arnio** replaces your messy ingestion script with a high-performance, declarative pipeline powered by `pybind11` and C++.
41
+
42
+
| ❌ The Old Way (Pandas) | ⚡ The Arnio Way |
43
+
| :--- | :--- |
44
+
|**Memory Spikes**: Python loads the entire raw string file before casting. |**C++ Native**: Parses and infers types directly into columnar memory. |
45
+
|**Spaghetti Code**: `.apply()` lambda functions scattered across cells. |**Declarative**: A strict, readable list of cleaning steps. |
46
+
|**Slow Execution**: Python loops over strings to strip whitespaces. |**Blazing Fast**: Cleaning primitives run at near metal speeds. |
34
47
35
48
---
36
49
37
-
## 📦 Installation
50
+
## 🚀 Getting Started
38
51
39
-
Arnio requires Python 3.9+ and is available on macOS, Linux, and Windows.
52
+
If you have Python 3.9+, you are 5 seconds away from faster data pipelines.
40
53
41
54
```bash
42
55
pip install arnio
43
56
```
44
57
45
-
---
46
-
47
-
## ⚡ Quickstart
58
+
### The 3-Step Workflow
48
59
49
-
### The Arnio Pipeline
60
+
Drop Arnio into the very top of your Jupyter Notebook or Python script.
50
61
51
62
```python
52
63
import arnio as ar
53
64
54
-
# 1. Load the raw file using the C++ backend
55
-
frame = ar.read_csv("customers.csv")
65
+
# 1. Load the raw file using the C++ core (no Python overhead)
-[ ] Chunked/streaming reads for out-of-core processing
129
-
-[ ] Advanced automatic type inference
130
-
-[ ] Schema enforcement contracts
131
-
-[ ] Parallelized C++ parsing
115
+
Arnio ships with a growing library of hyper-optimized C++ cleaning primitives:
132
116
133
-
Feedback on priorities is welcome — feel free to open a [GitHub Issue](https://github.com/im-anishraj/arnio/issues)!
117
+
-`drop_nulls`: Rip out bad rows instantly.
118
+
-`fill_nulls`: Patch holes with scalar values.
119
+
-`drop_duplicates`: Deduplicate rows based on exact matches.
120
+
-`strip_whitespace`: Trim invisible spaces from string columns.
121
+
-`normalize_case`: Force `upper` or `lower` case instantly.
122
+
-`rename_columns` & `cast_types`: Shape your data exactly how you need it.
134
123
135
124
---
136
125
137
-
## 🤝 Contributing
126
+
## 🤝 Join the Movement
138
127
139
-
Contributions are genuinely appreciated! Because Arnio is a hybrid C++/Python project, there is a lot of room to shape its architecture.
140
-
141
-
To build from source:
128
+
We are actively looking for contributors! Arnio is a hybrid Python/C++ project, making it the perfect playground if you want to learn `pybind11`, columnar memory formats, or high-performance Python.
0 commit comments