dask-expr
High Level Expressions for Dask
What it is and what it does
Dask Expressions is a rewrite of Dask DataFrame that adds query optimization by representing user operations as an expression tree before execution. Instead of executing operations immediately, the library builds a tree structure encoding the computation, optimizes it (e.g., fusing operations, reordering steps), and then executes the optimized plan. It is designed as a drop-in replacement and has been the default backend for dask.DataFrame since version 2024.3.0.
The package depends only on dask and installs with low friction. It covers nearly the full Dask DataFrame API, with the exception of named GroupBy Aggregations. It supports modern Python versions (3.10 through 3.13) and is intended for developers and researchers working with distributed data processing at scale.
Use it for:
- Optimize large distributed dataframe queries by leveraging automatic expression tree optimization before execution.
- Migrate from standard Dask DataFrame to a more efficient backend without changing existing code.
- Process time-series and grouped data with better performance through query planning.
- Build data pipelines where query optimization can reduce computation time and memory usage.
- Work with pandas-like APIs on distributed datasets while benefiting from automatic optimization.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Dask Expressions provides query optimization for Dask DataFrames by encoding operations as an expression tree that is optimized before execution, replacing the earlier Dask DataFrame implementation.
Yes. Dask Expressions is the default backend for dask.DataFrame as of version 2024.3.0, making it the standard choice for new Dask DataFrame work. It offers query optimization with low install friction and permissive licensing. Maintenance is dormant but the package is stable and widely used. Install it if you are using Dask DataFrames; it is the recommended path forward.
Install
dask-expr on PyPI
pip
pip install dask-expruv
uv add dask-exprpoetry
poetry add dask-exprInstalling dask-expr
Before you install
Low install friction with a single wheel distribution. Maintenance is dormant (570 days since last release), though the repository remains active with a recent commit on 2025-01-21. This is the default backend for dask.DataFrame since version 2024.3.0, so stability is established.
License in practice
BSD license is permissive, allowing commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
pip install dask-expr
import dask_expr as dx
df = dx.datasets.timeseries()
result = df.groupby("name").x.mean().compute()
Requires Python 3.10 or later.
Verify before relying
- Whether named GroupBy Aggregations (noted as missing) are critical for your workflow.
- Performance gains over standard Dask DataFrame for your specific query patterns.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — dask |
| Maintenance | dormant — 570 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 10,958,153/month — #1,422 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dask_expr-2.0.0-py3-none-any.whl
Keywords: dask, pandas
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
qpdQPD translates SQL SELECT statements into…
permissive · top 15,000 on PyPI
floxFlox provides fast GroupBy reduction operations…
permissive · top 15,000 on PyPI
swifterSwifter applies functions to DataFrames and…
unclear · top 5,000 on PyPI
dask-cudf-cu12Dask cuDF extends Dask DataFrame with a…
permissive · top 15,000 on PyPI
polars-runtime-compatPolars-runtime-compat provides binary wheels…
permissive · top 15,000 on PyPI
polarsPolars is a DataFrame query engine written in…
permissive · top 1,000 on PyPI
dask-geopandasDask-GeoPandas parallelizes geospatial…
permissive · top 15,000 on PyPI
accumulation-treeImplements a red/black tree that stores partial…
permissive · top 15,000 on PyPI
substraitProvides a Python interface to construct,…
permissive · top 15,000 on PyPI
etuplesProvides S-expression emulation using…
permissive · top 5,000 on PyPI