Skip to content

Framework

Polars

Fast, multi-threaded DataFrame library written in Rust with Python bindings, used for querying and transforming tabular data.

Known aliases

  • pl
  • polars
  • pola.rs
  • Polars DataFrame
  • polars-lang
  • Polars library
  • pola-rs Polars
  • py-polars

Current stories

buildOne report1 publisher

Polars 2.0's streaming default changes left-join row order from run to run

Polars 2.0.0 runs lazy queries on the streaming engine by default, and a left join on that engine no longer keeps row order. A dev.to author's repro shows the change raising no error and leaving every value correct.

Publishers:dev.to

Reality

Evidence62
Adoption
Not scored
Hype gap+8
Incentives40
Confidence60
buildOne report1 publisher

Aida van de Wetering rebuilds GeoPolars as a geo namespace inside Polars in about 125 commits

Aida van de Wetering has pushed about 125 commits to GeoPolars' dev branch since mid-September, rebuilding it as a geo expression namespace inside Polars. Polars teams with spatial work now have something to test before they reach for GeoPandas, though the project is still a prototype.

Publishers:dev.to

Reality

Evidence30
Adoption
Not scored
Hype gap+35
Incentives
Not scored
Confidence35
buildOne report1 publisher

Polars 2.0's streaming default can reorder group_by and join output without an error

Polars 2.0 runs LazyFrame.collect() on its streaming engine by default, a dev.to upgrade guide reports. One environment variable pins the old engine, so teams can fix the loud API breaks before hunting row-order changes that raise no error.

Publishers:dev.to

Reality

Evidence50
Adoption
Not scored
Hype gap+5
Incentives20
Confidence50
buildOne report1 publisher

A cached strptime only wins when the same date shows up 2,740 times

A week of measurements on one Mac mini puts the lru_cache wrapper around strptime at 3x when dates repeat and slightly slower when they do not. A Polars 2.0 release candidate finishes the same report in 0.13 s.

Publishers:dev.to

Reality

Evidence70
Adoption20
Hype gap+12
Incentives30
Confidence60
buildOne report1 publisher

Charging 10 bps a side turns a 13.44 Sharpe into -40.13 on the same code revision

A cross-sectional reversal baseline on 15-minute Bybit perpetual bars won 67 of 76 out-of-sample windows before costs and none of them after. Charging the trading it requires puts breakeven near 2.5 bps per side.

Publishers:dev.to

Reality

Evidence58
Adoption
Not scored
Hype gap−20
Incentives20
Confidence45
buildOne report1 publisher

A five-column CSV per institution collapses 107 official rate publishers into one dataset

The AllRates dataset on Hugging Face holds 14.6 million rows in each publisher's own direction and label, so the collecting is finished while the inversion, rounding and missing-day rules stay in your code.

Publishers:dev.to

Reality

Evidence45
Adoption
Not scored
Hype gap+12
Incentives72
Confidence50
buildConfirmed2 publishers

Polars 2.0-rc repoints engine="auto" to the streaming engine for every lazy collect

The release candidate keeps collect's signature and changes what its default resolves to. Group_by, joins and unpivot can now return rows in a different order, and explain() still prints the plan that was not run.

Publishers:docs.pola.rs pola.rs thenewstack.io

Perspective Coverage

3 publishers
Builder
Builder 57%
Operator
Operator 30%
Investor
Investor 13%

Reality

Evidence80
Adoption18
Hype gap+22
Incentives62
Confidence74
buildOne report1 publisher

Polars 2.0 routes every lazy collect() through the streaming engine by default

Ritchie Vink is selling 2.0 as a boring upgrade. Mostly it is, but engine="auto" now resolves to streaming by default, so joins and group_bys stop carrying incidental row order, and pipelines that leaned on it will drift quietly.

Publishers:runtimewire.com

Reality

Evidence62
Adoption20
Hype gap+10
Incentives78
Confidence58
buildOne report1 publisher

Pytest catches the pipeline bugs that ship as wrong numbers

A dev.to crash course splits pipeline testing into code correctness and data correctness. The split earns its keep because a renamed column produces nulls rather than a stack trace, so nothing pages anyone.

Publishers:dev.to

Reality

Evidence58
Adoption
Not scored
Hype gap+12
Incentives22
Confidence52
buildOne report1 publisher

Jinja Is Four Jobs In One Costume, And Only One Of Them Needs A Template

Interlace drops templating from its dbt-style models. Its argument: parse the SQL, and the dependency graph you were asked to declare twice is already sitting in the FROM clause.

Publishers:dev.to

Reality

Evidence30
Adoption
Not scored
Hype gap+20
Incentives72
Confidence36