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
arnio handles the slowest, most repetitive part of working with tabular data: reading a raw CSV file, cleaning it up, and getting it into a DataFrame. The parsing and cleaning run in C++ through pybind11. The output is a standard pandas DataFrame.
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.
27
+
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.
29
+
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.
34
+
35
+
---
36
+
37
+
## 📦 Installation
38
+
39
+
Arnio requires Python 3.9+ and is available on macOS, Linux, and Windows.
40
+
11
41
```bash
12
42
pip install arnio
13
43
```
14
44
45
+
---
46
+
47
+
## ⚡ Quickstart
48
+
49
+
### The Arnio Pipeline
50
+
15
51
```python
16
52
import arnio as ar
17
53
18
-
# Load and clean in three lines
54
+
#1. Load the raw file using the C++ backend
19
55
frame = ar.read_csv("customers.csv")
20
56
21
-
clean = ar.pipeline(frame, [
57
+
# 2. Run a blazing-fast cleaning pipeline
58
+
clean_frame = ar.pipeline(frame, [
22
59
("strip_whitespace",),
60
+
("normalize_case", {"case_type": "lower"}),
23
61
("drop_nulls",),
24
62
("drop_duplicates",),
25
63
])
26
64
27
-
df = ar.to_pandas(clean)
65
+
# 3. Export to a clean pandas DataFrame!
66
+
df = ar.to_pandas(clean_frame)
28
67
```
29
68
30
-
> Requires Python 3.9+. Wheels available for Linux, macOS, and Windows. Source builds require a C++17 compiler.
31
-
32
69
---
33
70
34
-
## How arnio is different
35
-
36
-
-**CSV parsing runs in C++, not Python.** On large files, `ar.read_csv()` uses measurably less time and memory than `pd.read_csv`.
71
+
## 🏎️ Performance
37
72
38
-
-**Cleaning is built in, not bolted on.**`ar.pipeline()` takes a list of named steps and runs them in sequence. No scattered method chains, no copy-paste between notebooks.
73
+
Arnio's memory-optimized columnar architecture ensures it scales effortlessly.
39
74
40
-
-**Preview before you load.**`ar.scan_csv("file.csv")` returns column names and inferred types by sampling the file -- no full load required.
Same result. Less code. Each step is explicit. The pipeline runs in C++.
96
-
97
119
---
98
120
99
-
## When to use arnio
121
+
## 🗺️ Roadmap
100
122
101
-
Use arnio when your bottleneck is **loading and cleaning CSVs** -- large files, messy columns, repeated preprocessing across projects.
123
+
Arnio is under active development. The core C++ CSV parser and basic cleaning primitives are stable. Upcoming features include:
102
124
103
-
Use pandas when you need **analysis** -- groupby, merge, pivot, time-series, plotting. arnio produces DataFrames; everything downstream stays the same.
0 commit comments