We've been busy in Q1 2026.
12 releases. 778 PRs. 95 contributors (thank you!).
Read all the highlights in the latest Polars in Aggregate:
pola.rs/posts/polars...
Posts by Polars
Polars loves sorted data!
If your data is already sorted, you can get a performance boost up to 18x when joining your datasets.
Read all about it in our latest blog post: pola.rs/posts/stream...
Realtime query profiling of Polars
In this post we use the query profiler in Polars Cloud to optimize the infrastructure configuration for a specific query. This results in a 54% faster and 64% cheaper query with only five runs.
Read all about it here: pola.rs/posts/query-...
We've released Polars Cloud client 0.6.0. Some of the highlights:
• Improved UX for query profiling
• Compute Scratchpad Alpha
• Improved distributed query planning
• Breaking: `LazyFrameRemote.execute` is now blocking by default
Jensen: "All of these platforms are processing DataFrames. This is the ground truth of business. ... Now we will have AI use structured data. And we are going to accelerate the living daylights out of it."
Polars DataFrames are at the core of the AI revolution.
www.youtube.com/watch?v=jw_o...
We've released Python Polars 1.39. Some of the highlights:
• Streaming AsOf join, enabling memory-efficient time-series joins.
• sink_iceberg() for writing to Iceberg tables
• Streaming cloud downloads for scan_csv(), scan_ndjson(), and scan_lines()
github.com/pola-rs/pola...
pl.from_repr() constructs a DataFrame or Series directly from its printed string representation. This can be useful in unit tests: instead of rebuilding expected DataFrames through dictionaries with typecasting, the schema is encoded in the header and the values are right there in the table.
Easily scale Polars queries from Airflow.
Our latest blog post walks through different patterns to run distributed Polars queries using Airflow: fire-and-forget execution, parallel queries, multi-stage pipelines, and manual cluster shutdowns.
Read more here: pola.rs/posts/airflo...
str.len_bytes() vs str.len_chars()
len_bytes: ~20x faster, counts UTF-8 bytes
len_chars: counts actual Unicode characters
- Use len_bytes for ASCII data (IDs, hashes)
- Use len_chars for anything multilingual
len_bytes is O(1) metadata lookup, len_chars is O(n) traversal.
We've released Python Polars 1.38. Some of the highlights:
• (De)Compression support on text based sources and sinks
• scan_lines() to read text files
• Merge join in the Streaming engine
Link to the complete changelog: github.com/pola-rs/pola...
We refactored the Categorical in 1.31.
The new Categories object gives you:
• Control over the physical type (UInt8/16/32)
• Named categories with namespaces
• Parallel updates without locks
• Automatic garbage collection
Full read: pola.rs/posts/catego...
In 1-2 weeks we land live query profiling in Polars Cloud.
See exactly how many rows are consumed and produced per operation. Which operation takes most runtime, and watch the data flow through live, like water. 😍
Looks like me and @eadehemingway.bsky.social are going to be running a workshop on data analysis with @pola.rs at NICAR in March. Maybe see some of you there!
We just released Polars 1.37, here are the highlights:
Improved Streaming Sinks: 1.14x-1.88x speedup, ~10% of the original memory.
Streaming Compressed CSVs
Faster SQL Ordering
pl.PartitionBy
min_by / max_by (see below)
Series.sql()
Free-Threading Support
Python 3.9 Support Dropped
musl Builds
Did you know about pl.corr()?
The problem with data aggregation is that it can hide what's really going on.
Below you can find Simpson's Paradox
Sometimes the devil really is in the details.
"We adopted Polars to meet strict technical requirements, but the result went beyond simple optimization. The 30x performance improvement gave us the unexpected opportunity to do more."
Read about how Rabobank deployed Polars in a critical enterprise production environment: lnkd.in/eZFPcxRw
We've just released 1.36.0. Here are the highlights:
Highlights:
🧩 Extension Types
🛟 Float16 Support
↪️ LazyFrame.pivot()
👀 DataFrame.show()
🗄️ SQL Parity: Added Window functions
⏱️ Parquet writer: 2.2x runtime improvement
Find the full release notes here: github.com/pola-rs/pola...
It’s been a year since the last Polars in Aggregate. Since then, we've shipped 37 releases, merged over 2,300 PRs, and built two new engines.
Here are the biggest highlights:
☁️ Polars Cloud is Live
🚀 Next-Gen Streaming engine.
🔢 Stable Decimals & Int128
and more
pola.rs/posts/polars...
Citizens cut query times from 80 to 8 minutes by adopting Polars, but the transformation went beyond speed. It provided a "grammar of business logic, improving maintainability and unlocking complexity without heavy backend engineering.
Read the full case study here: pola.rs/posts/case-c...
Code example of the Decimal type
Polars recently shipped some performance upgrades and long-awaited features:
🏆 Decimal Type Now Stable
🏆 Aggregation over the List and Array Types
✨Other new features:
Streaming ewm_mean()
Expr.item()
Expr.rolling_rank()
pl.union()
Read more: github.com/pola-rs/pola...
At the recent Polars meetup, Oliver & Daniel discussed how they migrated a pandas + SQL to Polars using Dataframely:
- 22x speedup
- 3x lower memory
- 50% code reduction
- Native dataframe validation with minimal overhead using Dataframely
Watch: www.youtube.com/watch?v=TL-3...
Swiss insurer La Mobilière refactored their risk model to Polars, achieving 5-10x speedups and enabling actuaries to run millions of simulation years on laptops. A scale previously unfeasible with pandas due to memory and single-core limitations.
pola.rs/posts/case-m...
We raised €18M in Series A led by Accel to build fast data processing at any scale. All on Polars.
pola.rs/posts/series...
The recordings of our third meetup are now available on Youtube!
Watch the session of Gijs Burghoorn, core developer @ Polars, here: youtu.be/xc5IsfwKRKE. In his talk he discussed how and why we optimize our Parquet reader.
Polars Cloud client 0.3.0 is released.
You can now spawn >100k queries to a single cluster and we load balance them gracefully. Additionally, the query planning now is posted as a worker task and can be cancelled by the user.
github.com/pola-rs/pola...
@decathlonfrance.bsky.social has adopted Polars across many workloads, reducing infrastructure complexity and overhead by running workloads on single machines instead of compute clusters.
Learn more in the case study: pola.rs/posts/case-d...
Today we launch Polars Cloud and the Public Beta of our Distributed Engine.
Read the post to get started!
pola.rs/posts/polars...
It is almost time for the 3rd official Polars meetup! The next meetup will take place on the 17th of September in Munich, Germany.
There will be a talk the Polars team and a community talk. It is also the perfect place to meet fellow Polars users.
RSVP here: www.meetup.com/polars-meetu...
Free DataCamp course announcement - Learn Polars, the high-performance data processing library that engineers love. Interactive Introduction to Polars course available at no cost. Partnership between DataCamp and Polars.
Are you looking to get started with Polars over the summer?
We've partnered with @datacamp.bsky.social to create an interactive course that covers the fundamentals so you can write your next query with Polars.
The course is free till the end of August: www.datacamp.com/courses/intr...
Polars 1.32, a thread...