Skip to content

Commit

Permalink
Prepare release v0.5.0 (#469)
Browse files Browse the repository at this point in the history
* Prepare release v0.5.0

* Add more changes and details to the changelog
  • Loading branch information
philss authored Jan 12, 2023
1 parent ecd216d commit df256a0
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 8 deletions.
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,49 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [v0.5.0] - 2023-01-12

### Added

- Add `DataFrame.describe/2` to gather some statistics from a dataframe.
- Add `Series.nil_count/1` to count nil values.
- Add `Series.in/2` to check if a given value is inside a series.
- Add `Series` float predicates: `is_finite/1`, `is_infinite/1` and `is_nan/1`.
- Add `Series` string functions: `contains/2`, `trim/1`, `trim_leading/1`, `trim_trailing/1`,
`upcase/1` and `downcase/1`.

- Enable slicing of lazy frames (`LazyFrame`).
- Add IO operations "from/load" to the lazy frame implementation.
- Add support for the `:lazy` option in the `DataFrame.new/2` function.
- Add `Series` float rounding methods: `round/2`, `floor/1` and `ceil/1`.
- Add support for precompiling to Linux running on RISCV CPUs.
- Add support for precompiling to Linux - with musl - running on AARCH64 computers.
- Allow `DataFrame.new/1` to receive the `:dtypes` option.
- Accept `:nan` as an option for `Series.fill_missing/2` with float series.
- Add basic support for the categorical dtype - the `:category` dtype.
- Add `Series.categories/1` to return categories from a categorical series.
- Add `Series.categorise/2` to categorise a series of integers using predefined categories.
- Add `Series.replace/2` to replace the contents of a series.
- Support selecting columns with unusual names (like with spaces) inside `Explorer.Query`
with `col/1`.

The usage is like this:

```elixir
Explorer.DataFrame.filter(df, col("my col") > 42)
```

### Fixed

- Fix `DataFrame.mutate/2` using a boolean scalar value.
- Stop leaking `UInt32` series to Elixir.
- Cast numeric columns to our supported dtypes after IO read.
This fix is only applied for the eager implementation for now.

### Changed

- Rename `Series.bintype/1` to `Series.iotype/1`.

## [v0.4.0] - 2022-11-29

### Added
Expand Down Expand Up @@ -204,6 +247,7 @@ properly compare floats.

First release.

[v0.5.0]: https://github.com/elixir-nx/explorer/compare/v0.4.0...v0.5.0
[v0.4.0]: https://github.com/elixir-nx/explorer/compare/v0.3.1...v0.4.0
[v0.3.1]: https://github.com/elixir-nx/explorer/compare/v0.3.0...v0.3.1
[v0.3.0]: https://github.com/elixir-nx/explorer/compare/v0.2.0...v0.3.0
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

[![Package](https://img.shields.io/hexpm/v/explorer.svg)](https://hex.pm/packages/explorer) [![Documentation](http://img.shields.io/badge/hex.pm-docs-green.svg?style=flat)](https://hexdocs.pm/explorer) ![CI](https://github.com/elixir-nx/explorer/actions/workflows/ci.yml/badge.svg)

Explorer brings series (one-dimensional) and dataframes (two-dimensional) for fast data exploration to Elixir. Its high-level features are:
Explorer brings series (one-dimensional) and dataframes (two-dimensional) for fast
data exploration to Elixir. Its high-level features are:

- Simply typed series: `:float`, `:integer`, `:boolean`, `:string`, `:date`, and `:datetime`.
- Simply typed series: `:float`, `:integer`, `:boolean`, `:string`, `:binary`, `:category`,
`:date` and `:datetime`.
- A powerful but constrained and opinionated API, so you spend less time looking for the right
function and more time doing data manipulation.
- Pluggable backends, providing a uniform API whether you're working in-memory or (forthcoming) on
Expand Down Expand Up @@ -47,7 +49,7 @@ Then you can add `Explorer` as dependency in your `mix.exs`.
```elixir
def deps do
[
{:explorer, "~> 0.4.0"}
{:explorer, "~> 0.5.0"}
]
end
```
Expand All @@ -56,7 +58,7 @@ Alternatively, inside a script or Livebook:

```elixir
Mix.install([
{:explorer, "~> 0.4.0"}
{:explorer, "~> 0.5.0"}
])
```

Expand Down
2 changes: 1 addition & 1 deletion lib/explorer/data_frame.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4339,7 +4339,7 @@ defmodule Explorer.DataFrame do
@doc """
Summarise each group to a single row using `Explorer.Query`.
To summarize, you must perform aggregation, defined in `Explorer.Series`,
To summarise, you must perform aggregation, defined in `Explorer.Series`,
on the desired columns. The query is compiled and runs efficiently
against the dataframe. This function performs aggregations based on groups,
so at least one group is expected, and the query must contain at least one
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ defmodule Explorer.MixProject do
use Mix.Project

@source_url "https://github.com/elixir-nx/explorer"
@version "0.5.0-dev"
@version "0.5.0"

def project do
[
Expand Down
4 changes: 2 additions & 2 deletions notebooks/exploring_explorer.livemd
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

```elixir
Mix.install([
{:explorer, "~> 0.4.0"},
{:kino, "~> 0.7.0"}
{:explorer, "~> 0.5.0"},
{:kino, "~> 0.8.0"}
])
```

Expand Down

0 comments on commit df256a0

Please sign in to comment.