Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Loaded when description matches the task. SKILL.md is the navigator — open only the reference file matching the sub-domain (IO, groupby, timeseries, etc.).
Use this skill when
Analyzing tabular data — exploration, filtering, sorting, aggregation
ETL pipelines — reading CSV/Parquet/Excel/SQL, transforming, writing back
Joining and merging DataFrames — inner/outer/left/right/cross, anti-joins, asof, ordered
Grouping data with split-apply-combine — groupby().agg(), named aggregations, transform, filter
Time-series work — DatetimeIndex, resample, rolling, shift, tz handling
Workloads need streaming, lazy execution, or > 1 GB single-machine processing — use polars (sibling, lazy by default, multi-threaded by default)
Building ML pipelines (estimators, cross-validation, pipelines) — use scikit-learn which consumes/produces pandas
Aggregation/filtering can run database-side without pulling data — use postgresql with raw SQL
Heavy numerical/matrix math on homogeneous arrays — use numpy directly
Pure Python language questions (type hints, asyncio, packaging) — use python
Purpose
pandas is the de facto DataFrame library for Python — labeled Series and DataFrame structures with rich indexing, aggregation, joining, and time-series facilities. As of pandas 3.0 (January 2026), the library defaults to a dedicated str dtype backed by PyArrow (no more dtype for strings), Copy-on-Write semantics (chained assignment is now a hard error in practice, not a warning), and datetime resolution inference ( / / chosen by input rather than always-). PyArrow is now a required dependency.
object
us
s
ns
ns
pandas vs polars positioning: pandas remains the right tool for interactive analysis, notebooks, ML feature-prep, and anything that fits comfortably in RAM (rule of thumb: data ≤ ~5× available memory with chunking, ≤ 1 GB without). For multi-GB, lazy/streaming, columnar query optimization, or strict schema enforcement, polars is faster and uses less memory — but lacks pandas' ecosystem breadth (matplotlib/seaborn/sklearn/statsmodels all speak pandas). Many production stacks use both: polars for ingest/heavy transforms, then .to_pandas() for downstream consumers.
Capabilities
Data structures and dtypes
Series (1D labeled array), DataFrame (2D labeled table), Index and MultiIndex (labels). In pandas 3.0 the default string dtype is str (PyArrow-backed) instead of object. Nullable dtypes (Int64, Float64, boolean, string, ArrowDtype(...)) handle missing values without coercing integers to float. Datetime resolution is inferred — strings parse to datetime64[us] by default rather than [ns].
.loc[] (label-based), .iloc[] (positional), .at[] / .iat[] (scalar fast path), boolean masks, .query() (string expressions), .filter(), .where(), .mask(). MultiIndex slicing via pd.IndexSlice. With Copy-on-Write, every indexer returns a copy — mutate the result, not the original.
df.groupby(keys).agg(...) with named aggregations (name=('col', 'aggfunc') or pd.NamedAgg) is the preferred pattern in 3.0 — output column names are explicit, dict-syntax is deprecated. transform returns same-shape, filter returns a subset of groups, apply is the escape hatch (slow — prefer agg/transform).
read_parquet / to_parquet (preferred for inter-process), read_csv (specify dtype= in production), read_excel, read_json (line-delimited for streams), read_sql. Chunked reads via chunksize=. Parquet partitioning via partition_cols=.
CoW is now ON unconditionally. Any indexer returns a logical copy; chained assignment (df[mask]['col'] = x) silently no-ops on the original. Refactor to df.loc[mask, 'col'] = x. The mode.copy_on_write option is deprecated and inert.