v0.8.0
Added
-
Add
explode/2
toExplorer.DataFrame
. This function is useful to expand the contents of a{:list, inner_dtype}
series into a "inner_dtype
" series. -
Add the new series functions
all?/1
andany?/1
, to work with boolean series. -
Add support for the "struct" dtype. This new dtype represents the struct dtype from Polars/Arrow.
-
Add
map/2
andmap_with/2
to theExplorer.Series
module.
This change enables the usage of theExplore.Query
features in a series. -
Add
sort_by/2
andsort_with/2
to theExplorer.Series
module.
This change enables the usage of the lazy computations and theExplorer.Query
module. -
Add
unnest/2
toExplorer.DataFrame
. It works by taking the fields of a "struct" - the new dtype - and transform them into columns. -
Add pairwise correlation -
Explorer.DataFrame.correlation/2
- to calculate the correlation between numeric columns inside a data frame. -
Add pairwise covariance -
Explorer.DataFrame.covariance/2
- to calculate the covariance between numeric columns inside a data frame. -
Add support for more integer dtypes. This change introduces new signed and unsigned integer dtypes:
{:s, 8}
,{:s, 16}
,{:s, 32}
{:u, 8}
,{:u, 16}
,{:u, 32}
,{:u, 64}
.
The existing
:integer
dtype is now represented as{:s, 64}
, and it's still the default dtype for integers. But series and data frames can now work with the new dtypes. Short names for these new dtypes can be used in functions likeExplorer.Series.from_list/2
. For example,{:u, 32}
can be represented with the atom:u32
.This may bring more interoperability with Nx, and with Arrow related things, like ADBC and Parquet.
-
Add
ewm_standard_deviation/2
andewm_variance/2
toExplorer.Series
.
They calculate the "exponentially weighted moving" variance and standard deviation. -
Add support for
:skip_rows_after_header
option for the CSV reader functions. -
Support
{:list, numeric_dtype}
forExplorer.Series.frequencies/1
. -
Support pins in
cond
, inside the context ofExplorer.Query
. -
Introduce the
:null
dtype. This is a special dtype from Polars and Apache Arrow to represent "all null" series. -
Add
Explorer.DataFrame.transpose/2
to transpose a data frame.
Changed
-
Rename the functions related to sorting/arranging of the
Explorer.DataFrame
.
Nowarrange_with
is namedsort_with
, andarrange
issort_by
.The
sort_by/3
is a macro and it is going to work using theExplorer.Query
module. On the other side, thesort_with/2
uses a callback function. -
Remove unnecessary casts to
{:s, 64}
now that we support more integer dtypes.
It affects some functions, like the following in theExplorer.Series
module:argsort
count
rank
day_of_week
,day_of_year
,week_of_year
,month
,year
,hour
,minute
,second
abs
clip
lengths
slice
n_distinct
frequencies
And also some functions from the
Explorer.DataFrame
module:mutate
- mostly because of series changessummarise
- mostly because of series changesslice
Fixed
-
Fix inspection of series and data frames between nodes.
-
Fix cast of
:string
series to{:datetime, any()}
-
Fix mismatched types in
Explorer.Series.pow/2
, making it more consistent. -
Normalize sorting options.
-
Fix functions with dtype mismatching the result from Polars.
This fix is affecting the following functions:quantile/2
in the context of a lazy seriesmode/1
inside a summarisationstrftime/2
in the context of a lazy seriesmutate_with/2
when creating a column from aNaiveDateTime
orExplorer.Duration
.
Pull requests
- Add
DataFrame.explode/2
by @costaraphael in #751 - Add
Series.all?/1
andSeries.any?/1
by @costaraphael in #754 - Add initial support for struct dtype by @costaraphael in #756
- DF.arrange options by @billylanchantin in #755
- Add
Series.map
andSeries.map_with
by @billylanchantin in #757 - Hopefully improves the description of DataFrame.arrange_with() by @kellyfelkins in #760
- Add
DataFrame.unnest/2
by @costaraphael in #758 - Pairwise correlation by @cristineguadelupe in #759
- Pairwise covariance by @cristineguadelupe in #763
- Add
Series.sort_by
andSeries.sort_with
by @billylanchantin in #762 - Enables alternative correlation methods by @cristineguadelupe in #767
- Add more integer dtypes by @philss in #769
- Rank method as atom by @cristineguadelupe in #770
- Normalize sorting options by @billylanchantin in #771
- refactor: s_rank by @cristineguadelupe in #772
- Bump zerocopy from 0.7.26 to 0.7.31 in /native/explorer by @dependabot in #773
- refactor: s_correlation by @cristineguadelupe in #774
- Added Series.ewm_std/2 and Series.ewm_var/2 by @rtvu in #778
- Fixes lint errors introduced in [#778] by @rtvu in #779
- Rename
DataFrame.arrange
asDataFrame.sort
by @billylanchantin in #777 - Support for skip_rows_after_header option in reading csv files by @JonGretar in #782
- Rename
:integer
dtype to{:s, 64}
by @philss in #785 - Support
{:list, numeric_type}
in Series.frequencies/1 by @philss in #788 - Update dependencies by @philss in #789
- Fix inspect between nodes by @Jhonatannunessilva in #784
- Support more integer dtypes in
Series.from_binary/2
by @philss in #790 - Cast string to datetime by @billylanchantin in #795
- Fix
Series.from_tensor/2
to use new integer types by @philss in #799 - Update Polars to v0.36 by @philss in #804
- implement - nil datatype - polar null type column by @lkarthee in #805
- improve error message with possibility of missing ^ operator by @lkarthee in #809
- Implement Series.from_list of null type by @lkarthee in #808
- Add :null tests for data frame from ndjson by @lkarthee in #811
- Update Docs with latest types by @lkarthee in #813
- docs - add :lazy option to DataFrame.new/2 by @lkarthee in #814
- docs - categorize deprecated functions by @lkarthee in #815
- typespec - add :null to dtype by @lkarthee in #817
- add nil expr for summarise and mutate - Py Polars
lit(None)
by @lkarthee in #816 - align describe with py polars by @lkarthee in #819
- add DataFrame.transpose/2 by @lkarthee in #820
- DataFrame.transpose/2 column names length check in elixir by @lkarthee in #823
- Fix up
from_query
docs by @cigrainger in #822 - Support more integer dtypes in Series by @philss in #824
- Fix mismatched types in
Series.pow
by @billylanchantin in #821 - Series.concat handle multiple integer, float and null types by @lkarthee in #812
- Remove unnecessary casts and other fixes by @philss in #825
- fix for Series.concat/2 for null series by @lkarthee in #828
- Fix
DF.concat_rows/2
to consider new numeric dtypes by @philss in #827 - Bump h2 from 0.3.22 to 0.3.24 in /native/explorer by @dependabot in #829
- Improve documentation about encoding option by @Jhonatannunessilva in #793
- Fix functions with result/dtypes mismatch by @philss in #830
- doc update about nils in
Series.from_list/2
by @lkarthee in #832 - Prepare change log for the upcoming v0.8 by @philss in #831
- Release v0.8 by @philss in #834
New Contributors
- @rtvu made their first contribution in #778
- @JonGretar made their first contribution in #782
Full Changelog: v0.7.2...v0.8.0
Official Changelog: https://hexdocs.pm/explorer/changelog.html
SHA256 of the artifacts
dda5a178f65d1babb4f58a6db9c9f4a860ba80cd806f2b9dbc1f982b5b4ff3cf explorer-v0.8.0-nif-2.15-x86_64-pc-windows-gnu--legacy_cpu.dll.tar.gz
5402324ad7bce16e04250c9e84abb48f7d9880f33d984354cc221230da92860e explorer-v0.8.0-nif-2.15-x86_64-pc-windows-gnu.dll.tar.gz
f1dffe2cca5a2f1dd38c083c837f1a42b82510e387ec0d0a6407ad17589614b7 explorer-v0.8.0-nif-2.15-x86_64-pc-windows-msvc--legacy_cpu.dll.tar.gz
c3bd886e71e42dfea88e86e709b42997ea3d10f5dbeb04fa7d6ab208fa25dcdd explorer-v0.8.0-nif-2.15-x86_64-pc-windows-msvc.dll.tar.gz
8e75a9b8bac4cf4ef8b996ff1c6ad730496293cffa0e9ef8f00386c79801f8c4 libexplorer-v0.8.0-nif-2.15-aarch64-apple-darwin.so.tar.gz
8fdb0c7cbbce17766543381f0c0521a1861995048223710603c88b1667046ae3 libexplorer-v0.8.0-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz
86b673bb6313498e21f8d1675910519e2246f65e9e7d17cb476ce71d5370b37c libexplorer-v0.8.0-nif-2.15-aarch64-unknown-linux-musl.so.tar.gz
4895fc9d84ba23cefe3c560b9a84c119c98936983a5dd6da79325044bc813a28 libexplorer-v0.8.0-nif-2.15-x86_64-apple-darwin.so.tar.gz
dd9b52480e6f6b66e4c5c00e035ceb17d9014f48afd2c812a6631e527db1d6e7 libexplorer-v0.8.0-nif-2.15-x86_64-unknown-freebsd--legacy_cpu.so.tar.gz
a1c6c7de1c48176329e0389e03a38acd441a1ce3ab2327f828a4a9d322c84f1b libexplorer-v0.8.0-nif-2.15-x86_64-unknown-freebsd.so.tar.gz
bdb29fe7cdf8d9b2642cc79a76ef2397de44b6c375ed0957edce76a7f473f430 libexplorer-v0.8.0-nif-2.15-x86_64-unknown-linux-gnu--legacy_cpu.so.tar.gz
efbcb90526b19a6b4918b248852392c36115405898994de26adfaf2fe6b74558 libexplorer-v0.8.0-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
df8be414caeb828e2f6c67dacf33bf2324e15e6b22423c4eb26cede9ff7b63c8 libexplorer-v0.8.0-nif-2.15-x86_64-unknown-linux-musl.so.tar.gz