Skip to content

Narwhals

Extremely lightweight compatibility layer between Polars, pandas, and more.

Seamlessly support both, without depending on either!

  • Just use a subset of the Polars API, no need to learn anything new
  • No dependencies (not even Polars), keep your library lightweight
  • ✅ Support both lazy and eager execution
  • ✅ Use Expressions
  • ✅ Tested against pandas and Polars nightly builds!

Who's this for?

Anyone wishing to write a library/application/service which consumes dataframes, and wishing to make it completely dataframe-agnostic.

Let's get started!