Dask Expressions
Dask DataFrames with query optimization.
This is a proof-of-concept rewrite of Dask DataFrame that includes query
optimization and generally improved organization.
More in our blog posts:
Example
import dask_expr as dx
df = dx.datasets.timeseries()
df.head()
df.groupby("name").x.mean().compute()Query Representation
Dask-expr encodes user code in an expression tree:
>>> df.x.mean().pprint()
Mean:
Projection: columns='x'
Timeseries: seed=1896674884This expression tree will be optimized and modified before execution:
>>> df.x.mean().optimize().pprint()
Div:
Sum:
Fused(375f9):
| Projection: columns='x'
| Timeseries: dtypes={'x': <class 'float'>} seed=1896674884
Count:
Fused(375f9):
| Projection: columns='x'
| Timeseries: dtypes={'x': <class 'float'>} seed=1896674884Stability
This project is a work in progress and will be changed without notice or
deprecation warning. Please provide feedback, but it's best to avoid use in
production settings.
API Coverage
dask_expr.DataFrame
absaddadd_prefixadd_sufixalignallanyapplyassignastypebfillclipcombine_firstcopycountcummaxcummincumprodcumsumdaskdivdividedropdrop_duplicatesdropnadtypesevalexplodeffillfillnafloordivgroupbyheadidxmaxidxminìlocindexisinisnajoinmapmap_overlapmap_partitionsmaskmaxmeanmemory_usagememory_usage_per_partitionmergeminminmodmodemulnlargestnsmallestnunique_approxpartitionspivot_tablepowprodqueryraddrdivrenamerename_axisrepartitionreplacereset_indexrfloordivrmodrmulroundrpowrsubrtruedivsampleselect_dtypesset_indexshiftshufflesort_valuesstdsubsumtailto_parquetto_timestamptruedivvarvisualizewhere
dask_expr.Series
absaddalignallanyapplyastypebetweenbfillclipcombine_firstcopycountcummaxcummincumprodcumsumdaskdivdividedrop_duplicatesdropnadtypeexplodeffillfillnafloordivgroupbyheadidxmaxidxminindexisinisnamapmap_partitionsmaskmaxmeanmemory_usagememory_usage_per_partitionminminmodmodemulnlargestnsmallestnunique_approxpartitionspowprodproductraddrdivrenamerename_axisrepartitionreplacereset_indexrfloordivrmodrmulroundrpowrsubrtruedivshiftshufflestdsubsumtailto_frameto_timestamptruedivuniquevalue_countsvarvisualizewhere
dask_expr.Index
absalignallanyapplyastypeclipcombine_firstcopycountdaskdtypefillnagroupbyheadidxmaxidxminindexisinisnamap_partitionsmaxmemory_usageminminmodenunique_approxpartitionsprodrenamerename_axisrepartitionreplacereset_indexroundshufflestdsumtailto_frameto_timestampvarvisualize
dask_expr._groupby.GroupBy
aggaggregateapply- `bfill
countffillfirstlastmaxmeanmedianminnuniqueprodshiftsizestdsumtransformvalue_countsvar
Support for SeriesGroupBy and DataFrameGroupBy.
dask_expr._resample.Resampler
aggcountfirstlastmaxmeanmedianminnuniqueohlcprodquantilesemsizestdsumvar
dask_expr._rolling.Rolling
aggapplycountmaxmeanmedianminquantilestdsumvarskewkurt
Binary operators (DataFrame, Series, and Index):
__add____radd____sub____rsub____mul____pow____rmul____truediv____rtruediv____lt____rlt____gt____rgt____le____rle____ge____rge____eq____ne____and____rand____or____ror____xor____rxor__
Unary operators (DataFrame, Series, and Index):
__invert____neg____pos__
Accessors:
CategoricalAccessorDatetimeAccessorStringAccessor
Function
concatfrom_pandasmergepivot_tableread_csvread_parquetrepartitionto_datetimeto_numericto_timedeltato_parquet