After many months of hard work DataFrames.jl 1.4.0 has been released. There were 98 PR included in this release (not including patch release commits, and we had 6 such releases) authored by: Alex Arslan, alfaromartino, anand jain, Bogumił Kamiński, Eric Hanson, jariji, Joseph Wilson, Lilith Orion Hafner, Martijn Visser, Milan Bouchet-Valat, Mo-Gul, musvaage, reumle, Rik Huijzer, Ronan Arraes Jardim Chagas, Stefan Krastanov, Yakir Luc Gagnon; I used names provided on GitHub commits. There were also numerous people that opened issues and took part in the discussion. I would like to thank them all. Among them @nalimilan must be mentioned as he reviewed every PR that was made.
This is one of the biggest releases made. The number of PRs is large, but most importantly several important improvements were made. You can find all changes in the 1.4 release and 1.3.x patch releases in NEWS.md. Some of the changes involved hundreds of comments and discussions and changes in the whole JuliaData ecosystem.
Here let me highlight major changes (I drop minor improvements and bug fixes as there are too many of them):
- DataFrames.jl 1.4.0 requires at least Julia 1.6, if you use older version of Julia DataFrames.jl 1.3.6 should be used; it is in maintenance mode (so if there are any bugs found please report them and I will make a patch release)
-
unstacknow supportscombinekeyword argument, which turns this function into a pivot-table (allowing for aggregation of data when unstacking) - add full support for “data frame as a collection of rows” functionality, adding functions:
reverse!,permute!,invpermute!,shuffle,shuffle!,resize!,keepat!,pop!,popfirst!,popat!,pushfirst!,insert!,prepend! - On Julia 1.7 or newer broadcasting assignment into an existing column of a data frame replaces it. Under Julia 1.6 or older it is an in place operation. (#3022)
- Add special syntax for
eachindex,groupindices, andproprowto transformation mini-language -
DataFrameis now amutable struct; this change makesDataFrameobjects serialized under earlier versions of DataFrames.jl incompatible with version 1.4 - added table-level and column-level metadata support.
Between DataFrames.jl 1.4.0 and 1.3.0 the following major compatibility changes are made:
- Compat.jl 4.2 from 3.17
- PrettyTables.jl 2.1 form 0.12, 1
- SnoopPrecompile.jl 1 from no dependency
These changes might cause version conflicts when adding packages (minor and patch versions for other packages were made but they are unlikely to make Julia package manager complain).
On my blog I will be releasing posts in the coming weeks explaining the most important changes in DataFrames.jl 1.4.0 on practical cases.
Also soon all curated tutorials will be updated to DataFrames.jl 1.4.0. I will make a post when this is done.