dataframes
/dataframes
Pandas and Polars for tabular data: when to use which, indexing and dtypes, joins and reshaping, lazy Polars, I/O and Parquet, nulls, Arrow interop, and performance. Use for DataFrame/Series/LazyFrame code. Triggers on pandas, polars, DataFrame, LazyFrame, parquet, groupby, merge, join.
- Author
- WSU-Carbon-Lab ↗
- Repository
- pyref ↗
- Licence
- LGPL
- Last repository change
- 17.10.2026
Assessment and security
- Files in this package
- 7
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 3
No signals detected. Repository changed on 17.10.2026, without references to retired models or APIs.
LGPL, otwarta.
What it does and when to use it
Pandas and Polars for tabular data: when to use which, indexing and dtypes, joins and reshaping, lazy Polars, I/O and Parquet, nulls, Arrow interop, and performance. Use for DataFrame/Series/LazyFrame code. Triggers on pandas, polars, DataFrame, LazyFrame, parquet, groupby, merge, join.
Original author description
Pandas and Polars for tabular data: when to use which, indexing and dtypes, joins and reshaping, lazy Polars, I/O and Parquet, nulls, Arrow interop, and performance. Use for DataFrame/Series/LazyFrame code. Triggers on pandas, polars, DataFrame, LazyFrame, parquet, groupby, merge, join.
How it works
- Quick start
- Stack synergy
- Reference index
- Official documentation
- Dependencies
SKILL.md preview
--- author: dotagents name: dataframes description: Pandas and Polars for tabular data: when to use which, indexing and dtypes, joins and reshaping, lazy Polars, I/O and Parquet, nulls, Arrow interop, and performance. Use for DataFrame/Series/LazyFrame code. Triggers on pandas, polars, DataFrame, LazyFrame, parquet, groupby, merge, join. --- # Dataframes (pandas + Polars) ## Quick start 1. **Pick one engine per pipeline**: **pandas** when **index semantics**, **mixed columns**, and **ecosystem** (statsmodels, sklearn I/O) matter; **Polars** when **large scans**, **lazy plans**, and **expression** clarity win. See [reference-when-which.md](references/reference-when-which.md). 2. **pandas**: be explicit with **`loc` / `iloc`**, **`assign`**, and **dtypes**; understand **views vs copies** and **Copy-on-Write** (2.x). See [reference-pandas-core.md](references/reference-pandas-core.md). 3. **Polars**: default to **`scan_*` + `lazy()`** for big data; build with **`select` / `with_columns` / `filter`** and **`pl.col`**; **`collect`** at the boundary. See [reference-polars.md](references/reference-polars.md). 4. **Joins and groups**: validate **row counts** and **duplicates**; name **suffixes**; prefer **Polars** for parallel group-by on large tables when the project already uses it. See [reference-pandas-group-join.md](references/reference-pandas-group-join.md) and [reference-polars.md](references/reference-polars.md). 5. **I/O**: **Parquet** (often **PyArrow**) for analytics interchange; **`uv add pyarrow`** when the stack needs it. See [reference-io-dtypes-nulls.md](references/reference-io-dtypes-nulls.md). 6. **Handoff**: convert at **module boundaries** with **`from_pandas`** / **`to_pandas`** or **Arrow**; avoid ping-pong in inner loops. See [reference-interop-performance.md](references/reference-interop-performance.md). ## Stack synergy | Resource | Role | |----------|------| | **Python spec** | Explicit pandas index/columns; lazy Polars for heavy queries | | **numpy-scientific** | `to_numpy()`, dtypes, contiguous buffers | | **matplotlib-scientific** | `df.plot(ax=ax)` and Polars `.to_pandas()` for plotting when needed | | **numpy-docstrings** | Public API docstrings for DataFrame-returning functions | | **general-python** | uv, ty, **python-reviewer** | ## Reference index | Topic | File | |--------|------| | pandas vs Polars, boundaries | [reference-when-which.md](references/reference-when-which.md) | | Index, `loc`/`iloc`, dtypes, COW, assignment | [reference-pandas-core.md](references/reference-pandas-core.md) | | GroupBy, merge/join, concat, pivot | [reference-pandas-group-join.md](references/reference-pandas-group-join.md) | | LazyFrame, expressions, group, join | [reference-polars.md](references/reference-polars.md) | | CSV/Parquet, nulls, dtypes, Arrow | [reference-io-dtypes-nulls.md](references/reference-io-dtypes-nulls.md) | | Conversion, streaming, typing | [reference-interop-performance.md](references/reference-interop-performance.md) | ## Official documentation - [pandas user guide](https://pandas.pydata.org/docs/user_guide/index.html) - [Polars user guide](https://docs.pola.rs/user-guide/) - [Polars API](https://docs.pola.rs/api/python/stable/reference/index.html) ## Dependencies Use **`uv add pandas`**, **`uv add polars`**, **`uv add pyarrow`** as needed; do not hand-edit version pins in `pyproject.toml`.
Files in this package (7)
- SKILL.md 3 KB
- references/reference-interop-performance.md 2 KB
- references/reference-io-dtypes-nulls.md 1 KB
- references/reference-pandas-core.md 2 KB
- references/reference-pandas-group-join.md 1 KB
- references/reference-polars.md 2 KB
- references/reference-when-which.md 2 KB
Versions
The database has no other skills named dataframes.
Database snapshot: 13.11.2026 · package version cb85528adef9 (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 100polars
Polars is a fast DataFrame library written in Rust with Python bindings, built on Apache Arrow with lazy evaluation and a streaming engine for larger-than-memory data. Use it when a user asks to replace pandas for speed, read CSV or Parquet files, write expressions, group_by,… - 95polars-dataframes
Fast in-memory DataFrame with lazy evaluation, parallel execution, Arrow backend. Use for tabular data in RAM (1–100 GB) when pandas is too slow. Expression API: select, filter, group_by, joins, pivots, window. Lazy mode enables predicate/projection pushdown. Reads CSV, Parquet,… - 100polars
Writes fast, idiomatic Polars in Python using the lazy API, and answers natural-language questions about data in one shot. Use this skill whenever a task involves loading, querying, transforming, aggregating, joining, or analyzing tabular data (CSV, Parquet, NDJSON, or… - 100polars
Expression-based DataFrame library for Python and Rust. Use for eager or lazy tabular analytics, ETL, and pandas migration; streaming support and memory needs depend on the query. - 100data-analysis
Analyzes tabular data from CSV, Parquet or dataframes with pandas, Polars and DuckDB. Use when totals do not reconcile, a join duplicates rows, comparing groups or trends, a metric's grain or denominator matters, timezones shift daily counts, or a file is too large to load into… - 100polars
High-performance DataFrame library for Python ETL, analytics, and pandas migration. Use for expression-based data manipulation with lazy query optimization, parallel execution, streaming out-of-core processing, Arrow interoperability, and optional GPU execution.