sickn33/antigravity-awesome-skills/polars
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install sickn33/antigravity-awesome-skills/polarsSKILL.md
Use import polars.selectors as cs for selector examples.
Bundled upstream support
Supporting files are included at skill-relative paths. See UPSTREAM-NOTICE.md for their pinned sources, licenses, hashes, and import changes.
Polars
When to Use
- You need a faster in-memory DataFrame workflow than pandas for data that still fits in RAM.
- You are building ETL, analytics, or transformation pipelines that benefit from lazy evaluation and parallel execution.
- You want expression-based tabular operations on top of Apache Arrow semantics.
Overview
Polars is a lightning-fast DataFrame library for Python and Rust built on Apache Arrow. Work with Polars' expression-based API, lazy evaluation framework, and high-performance data manipulation capabilities for efficient data processing, pandas migration, and data pipeline optimization.
Correctness and execution boundaries
Pin the Polars version and compare results on a small representative fixture before migration. Examples are not a benchmark or a fixed 1–100 GB guarantee. Streaming collect still materializes the result; use a sink when output cannot fit RAM. Source scans may read metadata/schema before collect. Cloud/database reads and writes require the authorized destination, data scope and budget. Treat exports as private, avoid overwriting existing files and use fail-if-exists for database tables. Strings in when/then are column references unless pl.lit is used. Sibling expressions cannot refer to aliases created in the same context.
Quick Start
Installation and Basic Usage
Install Polars:
Basic DataFrame creation and operations:
Core Concepts
Expressions
Expressions are the fundamental building blocks of Polars operations. They describe transformations on data and can be composed, reused, and optimized.
Key principles:
- Use
pl.col("column_name")to reference columns - Chain methods to build complex transformations
- Expressions are lazy and only execute within contexts (select, with_columns, filter, group_by)
Example:
Lazy vs Eager Evaluation
Eager (DataFrame): Operations execute immediately
Lazy (LazyFrame): Operations build a query plan, optimized before execution
When to use lazy:
- Working with large datasets
- Complex query pipelines
- When only some columns/rows are needed
- Performance is critical
Benefits of lazy evaluation:
- Automatic query optimization
- Predicate pushdown
- Projection pushdown
- Parallel execution
For detailed concepts, load references/core_concepts.md.
Common Operations
Select
Select and manipulate columns:
Filter
Filter rows by conditions:
With Columns
Add or modify columns while preserving existing ones:
Group By and Aggregations
Group data and compute aggregations:
For detailed operation patterns, load references/operations.md.
Aggregations and Window Functions
Aggregation Functions
Common aggregations within group_by context:
pl.len()- count rowspl.col("x").sum()- sum valuespl.col("x").mean()- averagepl.col("x").min()/pl.col("x").max()- extremespl.first()/pl.last()- first/last values
Window Functions with over()
Apply aggregations while preserving row count:
Mapping strategies:
group_to_rows(default): Preserves original row orderexplode: Faster but groups rows togetherjoin: Creates list columns
Data I/O
Supported Formats
Polars supports reading and writing:
- CSV, Parquet, JSON, Excel
- Databases (via connectors)
- Cloud storage (S3, Azure, GCS)
- Google BigQuery
- Multiple/partitioned files
Common I/O Operations
CSV:
Parquet (recommended for performance):
JSON:
For comprehensive I/O documentation, load references/io_guide.md.
Transformations
Joins
Combine DataFrames:
Concatenation
Stack DataFrames:
Pivot and Unpivot
Reshape data:
For detailed transformation examples, load references/transformations.md.
Pandas Migration
Polars offers significant performance improvements over pandas with a cleaner API. Key differences:
Conceptual Differences
- No index: Polars uses integer positions only
- Strict typing: No silent type conversions
- Lazy evaluation: Available via LazyFrame
- Parallel by default: Operations parallelized automatically
Common Operation Mappings
| Operation | Pandas | Polars | |
|---|---|---|---|
| Select column | df["col"] | df.select("col") | |
| Filter | df[df["col"] > 10] | df.filter(pl.col("col") > 10) | |
| Add column | df.assign(x=...) | df.with_columns(x=...) | |
| Group by | df.groupby("col").agg(...) | df.group_by("col").agg(...) | |
| Window | df.groupby("col").transform(...) | df.with_columns(pl.col("x").mean().over("col")) |
Key Syntax Patterns
Pandas sequential (slow):
Polars parallel (fast):
For comprehensive migration guide, load references/pandas_migration.md.
Best Practices
Performance Optimization
- Use lazy evaluation for large datasets:
``python lf = pl.scan_csv("large.csv") # Don't use read_csv result = lf.filter(...).select(...).collect() ``
- Avoid Python functions in hot paths:
- Stay within expression API for parallelization
- Use
.map_elements()only when necessary - Prefer native Polars operations
- Use streaming for very large data:
``python lf.collect(engine="streaming") ``
- Keep only needed columns without removing filter inputs:
``python # Equivalent lazy plans may receive the same pushdowns. # Filter first when its input columns are absent from the final selection. lf.filter(pl.col("age") > 25).select("name", "age") ``
- Use appropriate data types:
- Categorical for low-cardinality strings
- Appropriate integer sizes (i32 vs i64)
- Date types for temporal data
Expression Patterns
Conditional operations:
Column operations across multiple columns:
Null handling:
For additional best practices and patterns, load references/best_practices.md.
Resources
This skill includes comprehensive reference documentation:
references/
core_concepts.md- Detailed explanations of expressions, lazy evaluation, and type systemoperations.md- Comprehensive guide to all common operations with examplespandas_migration.md- Complete migration guide from pandas to Polarsio_guide.md- Data I/O operations for all supported formatstransformations.md- Joins, concatenation, pivots, and reshaping operationsbest_practices.md- Performance optimization tips and common patterns
Load these references as needed when users require detailed information about specific topics.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/polars/SKILL.md
Popularity
- Repository stars
- 26,175
- Repository forks
- 4,461
- Repository npm downloads, 7 days
- 11,772
- 7-day trend score
- 72
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 20 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sickn33/antigravity-awesome-skills/polars)