CHANGELOG.md

July 10, 2026 ยท View on GitHub

0.26.1 (unreleased)

  • Added support for more types to scan_iceberg method
  • Fixed return dtype for cum_sum_horizontal method

0.26.0 (2026-06-04)

  • Updated Polars to 0.54.4
  • Added truncate method to Series and Expr
  • Added gather method to DataFrame and LazyFrame
  • Added is_empty method to Expr
  • Added get method to BinaryNameSpace
  • Added maintain_order option to implode and merge_sorted methods
  • Added holidays option to add_business_days and is_business_day methods
  • Added column_naming option to pivot method
  • Added dtype option to reinterpret method
  • Added nulls_last option to set_sorted method
  • Added support for non-UTC time zones when converting datetime values to Ruby
  • Made bigdecimal optional
  • Fixed unpivot method when on option is nil

Changed defaults

  • Changed default name for read_lines and scan_lines methods from lines to line
  • Changed default how for align_frames method from left to full
  • Changed default min_samples for rolling_sum_by method from 1 to 0
  • Changed default with_replacement for sample method from true to false for Expr
  • Changed default base for entropy method from 2 to Math::E for Expr
  • Changed default normalize for entropy method from false to true for Series
  • Changed default delimiter for join method from - to empty string for StringExpr and StringNameSpace

0.25.1 (2026-03-23)

  • Added explain_all method to Polars
  • Fixed storage_options option for scan_parquet and scan_ipc methods
  • Fixed Struct construction with nil values
  • Fixed read_database method for JSON columns

0.25.0 (2026-02-18)

  • Updated Polars to 0.53.0
  • Added Float16 type
  • Changed each method for GroupBy to always return Array keys

Added methods

  • Added self_dtype method to Polars
  • Added map_batches method to Polars, Expr, and LazyFrame
  • Added map_groups method to Polars, GroupBy, DynamicGroupBy, RollingGroupBy, and LazyGroupBy
  • Added map_columns method to DataFrame
  • Added map_elements and pipe methods to Expr
  • Added pivot method to LazyFrame
  • Added sql method to Series
  • Added having method to GroupBy, DynamicGroupBy, RollingGroupBy, and LazyGroupBy
  • Added mean method to ArrayNameSpace
  • Added slice, head, and tail methods to BinaryExpr and BinaryNameSpace
  • Added get method to BinaryExpr
  • Added as_expression method to MetaExpr
  • Added map_fields method to NameExpr

Added options

  • Added compression, compression_level, and check_extension options to write_csv method
  • Added empty_as_null and keep_nulls options to explode method
  • Added ignore_nulls option to first and last methods
  • Added leftmost option to find_many, extract_many, and replace_many methods
  • Added maintain_order option to mode method
  • Added strict option to concat and union methods for Polars
  • Added null_on_oob option to get method for Expr
  • Added literal and strict options to split method for StringExpr

0.24.0 (2026-02-04)

  • Added support for Ruby 4.0
  • Added support for streaming engine
  • Added support for releasing GVL
  • Added experimental support for background queries
  • Improved exception classes
  • Changed schema method to return Schema instead of Hash
  • Changed partition_by(as_dict: true) method to always return Array keys
  • Removed support for string and symbol data types (:i32, :f64, etc.)
  • Dropped support for Ruby < 3.3

Changed defaults

  • Changed default statistics for write_parquet method from false to true
  • Changed default compression for sink_ipc method from zstd to uncompressed
  • Changed default raise_if_empty for read_csv method from false to true
  • Changed default eager for ones and zeros method from true to false
  • Changed default ignore_nulls for ewm_mean, ewm_std, and ewm_var methods from true to false
  • Changed default null_on_oob for get method from true to false
  • Changed default maintain_order for unique method from true to false for DataFrame and LazyFrame
  • Changed default keep for unique method from first to any for DataFrame and LazyFrame
  • Changed default null_equal for equals method from false to true for Series
  • Changed default strict for decode method from false to true for StringNameSpace

Added methods

  • Added plot method to Series
  • Added concat_arr, escape_regex, int_ranges, and linear_spaces methods to Polars
  • Added rolling_rank and rolling_rank_by methods to Series and Expr
  • Added days_in_month method to DateTimeExpr and DateTimeNameSpace
  • Added agg and item methods to ListExpr and ListNameSpace
  • Added agg and eval methods to ArrayExpr and ArrayNameSpace
  • Added replace method to NameExpr

Added options

  • Added more options to read_csv and scan_csv methods
  • Added more options to read_ndjson and scan_ndjson methods
  • Added more options to write_csv method
  • Added more options to sort method
  • Added more options to over method
  • Added ambiguous option to strptime method

Renamed options

  • Renamed reverse option to descending
  • Renamed sep option to separator
  • Renamed row_count_name option to row_index_name
  • Renamed row_count_offset option to row_index_offset
  • Renamed comment_char option to comment_prefix for read_csv, read_csv_batched, and scan_csv methods
  • Renamed dtypes option to schema_overrides for read_csv, read_csv_batched, and scan_csv methods
  • Renamed parse_dates option to try_parse_dates for read_csv, read_csv_batched, and scan_csv methods
  • Renamed min_periods option to min_samples
  • Renamed by option to group_by for group_by_dynamic, rolling, and upsample methods
  • Renamed frac option to fraction for sample methods
  • Renamed drop_nulls option to ignore_nulls for all and any methods
  • Renamed join_nulls option to nulls_equal for join method
  • Renamed strict option to check_dtypes for equals method
  • Renamed quote option to quote_char for write_csv method
  • Renamed data_pagesize_limit option to data_page_size for sink_parquet method
  • Renamed unit option to time_unit for from_epoch method
  • Renamed eager_execution option to eager for SQLContext constructor

Removed methods

  • Removed take and take_every methods (use gather and gather_every instead)
  • Removed clip_min and clip_max methods (use clip instead)
  • Removed argsort and argsort_by methods (use arg_sort and arg_sort_by instead)
  • Removed shift_and_fill methods (use shift(fill_value:) instead)
  • Removed group, groupby, groupby_dynamic, and groupby_rolling methods (use group_by* instead)
  • Removed group_by_rolling methods (use rolling instead)
  • Removed asin, asinh, acos, acosh, atan, and atanh methods (use arc* instead)
  • Removed days, hours, minutes, seconds, milliseconds, microseconds, and nanoseconds methods (use total_* instead)
  • Removed cumsum, cumsum_horizontal, cumprod, cummin, cummax, cumcount, and cumfold methods (use cum_* instead)
  • Removed with_column methods (use with_columns instead)
  • Removed where method (use filter instead)
  • Removed series_equal and frame_equal methods (use equals instead)
  • Removed apply methods (use map_elements or map_rows instead)
  • Removed lengths methods (use len or len_bytes instead)
  • Removed keep_name, prefix, suffix, and map_alias methods (use name methods instead)
  • Removed ljust and rjust methods (use pad_end and pad_start instead)
  • Removed lstrip and rstrip methods (use strip_chars_start and strip_chars_end instead)
  • Removed strip method (use strip_chars instead)
  • Removed n_chars method (use len_chars instead)
  • Removed parse_int method (use to_integer instead)
  • Removed json_extract method (use json_decode instead)
  • Removed cleared methods (use clear instead)
  • Removed melt method (use unpivot instead)
  • Removed count_match methods (use count_matches instead)
  • Removed is_numeric, is_datelike, is_temporal, is_float, is_bool, is_boolean, and is_utf8 methods from Series (use dtype methods instead)
  • Removed numeric?, datelike?, temporal?, float?, bool?, boolean?, and utf8? methods from Series (use dtype methods instead)
  • Removed is_first method (use is_first_distinct instead)
  • Removed approx_unique method (use approx_n_unique instead)
  • Removed set_at_idx method (use scatter instead)
  • Removed insert_at_idx and replace_at_idx methods (use insert_column and replace_column instead)
  • Removed find_idx_by_name method (use get_column_index instead)
  • Removed avg method (use mean instead)
  • Removed arctan2d method (use arctan2 + degrees instead)
  • Removed read_sql method (use read_database instead)
  • Removed with_row_count methods (use with_row_index instead)
  • Removed has_validity method (use has_nulls instead)
  • Removed shrink_dtype method from Expr (use Series#shrink_dtype instead)
  • Removed replace method from DataFrame (use []= instead)
  • Removed read_json and write_json methods from LazyFrame (use deserialize and serialize instead)
  • Removed fetch method from LazyFrame (use head + collect instead)
  • Removed with_context method from LazyFrame (use Polars.concat(how: "horizontal") instead)
  • Removed with_time_unit method from DateTimeExpr and DateTimeNameSpace (use cast(Polars::Int64).cast(Polars::Datetime.new(...)) instead)
  • Removed datetime method from DateTimeExpr (use replace_time_zone instead)
  • Removed mean and median methods from DateTimeNameSpace (use Series#mean and Series#median instead)
  • Removed concat method from StringExpr and StringNameSpace (use join("-") instead)
  • Removed describe_plan and describe_optimized_plan methods (use explain instead)
  • Removed plot method from GroupBy (use DataFrame#plot instead)

Removed options

  • Removed dtype_if_empty option from Series constructor
  • Removed warn_if_unsorted option from rolling_*_by methods
  • Removed in_place option from rename method
  • Removed append_chunks option from append method
  • Removed name option from repeat method
  • Removed utc option from strptime method
  • Removed truncate option from group_by_dynamic methods
  • Removed eager option from from_epoch method
  • Removed string_cache option from collect and collect_all methods

0.23.0 (2025-11-04)

  • Updated Polars to 0.52.0

0.22.0 (2025-09-17)

  • Updated Polars to 0.51.0
  • Added serialize and deserialize methods to DataFrame
  • Added storage_options and retries options to sink_ipc method
  • Added business_day_count method to Polars
  • Added experimental support for Iceberg
  • Added experimental cast_options option to scan_parquet method
  • Changed read_parquet_schema method to return Schema
  • Fixed Object type

0.21.1 (2025-08-18)

  • Added read_parquet_metadata method to Polars
  • Added more methods to Series and Expr
  • Added more methods to DataFrame and LazyFrame
  • Added more methods to ArrayExpr and ArrayNameSpace
  • Added more methods to BinaryExpr and BinaryNameSpace
  • Added more methods to CatExpr and CatNameSpace
  • Added more methods to DateTimeExpr and DateTimeNameSpace
  • Added more methods to ListExpr and ListNameSpace
  • Added more methods to MetaExpr
  • Added more methods to NameExpr
  • Added more methods to StringExpr and StringNameSpace
  • Added more methods to StructExpr and StructNameSpace
  • Fixed subset option for drop_nulls method

0.21.0 (2025-08-03)

  • Updated Polars to 0.50.0
  • Added Catalog class
  • Added rows_by_key method to DataFrame
  • Added set methods to ListExpr and ListNameSpace
  • Added filter method to ListExpr and ListNameSpace
  • Added extra_columns option to scan_parquet method
  • Removed columns option from DataFrame constructor (use schema instead)
  • Removed has_header option from write_csv method (use include_header instead)

0.20.0 (2025-06-23)

  • Updated Polars to 0.49.1

0.19.0 (2025-05-20)

  • Updated Polars to 0.48.0

0.18.0 (2025-05-05)

  • Updated Polars to 0.47.1

0.17.1 (2025-04-12)

  • Added support for horizontal concatenation of LazyFrames
  • Added diagonal_relaxed and align strategies to concat method
  • Added interpolate_by method to Series and Expr
  • Added iter_columns and iter_slices methods to DataFrame
  • Added maintain_order option to join method
  • Added collect_schema method to DataFrame
  • Added write_database method to DataFrame (experimental)
  • Fixed error with to_numo method for Boolean series with null values
  • Fixed error with slice method and negative offset

0.17.0 (2025-01-28)

  • Updated Polars to 0.46.0
  • Changed write_json method for DataFrame to be row-oriented
  • Fixed error with Series constructor and strict: false

0.16.0 (2024-12-29)

  • Updated Polars to 0.45.1
  • Added support for Ruby 3.4
  • Added experimental support for Delta Lake
  • Added by_name selector
  • Added thread_pool_size method to Polars
  • Removed axis option from min, max, sum, and mean methods (use *_horizontal instead)
  • Dropped support for Ruby < 3.2

0.15.0 (2024-11-20)

  • Updated Polars to 0.44.2
  • I/O methods no longer require a URI object for remote files
  • Added support for scanning files from cloud storage
  • Added experimental support for Arrow C streams
  • Added selectors
  • Added config, string_cache, and cs methods to Polars
  • Added strict option to DataFrame constructor
  • Added compat_level option to write_ipc and write_ipc_stream methods
  • Added name option to write_avro method
  • Added support for array of name-type pairs to schema option
  • Added cast method to DataFrame and LazyFrame
  • Added coalesce option to join and join_asof methods
  • Added validate option to join method
  • Added strict option to rename method
  • Changed rechunk option default from true to false for scan_parquet method
  • Fixed limit method for LazyFrame
  • Fixed read_database connection leasing for Active Record 7.2
  • Removed get_dummies method from Polars (use df.to_dummies instead)
  • Removed to_list method from Polars (use col(name).list instead)
  • Removed spearman_rank_corr method from Polars (use corr(method: "spearman") instead)
  • Removed pearson_corr method from Polars (use corr(method: "pearson") instead)
  • Removed inner_dtype and time_unit methods from Series

0.14.0 (2024-09-17)

  • Updated Polars to 0.43.1
  • Fixed frac option for sample method

0.13.0 (2024-09-04)

  • Updated Polars to 0.42.0
  • Added precompiled gem for Linux ARM MUSL
  • Added precompiled gem for Windows

0.12.0 (2024-07-11)

  • Updated Polars to 0.41.3
  • Added nth method to Polars
  • Added get method to Expr
  • Added check_names option to equals method
  • Improved struct method
  • Aliased melt to unpivot for DataFrame and LazyFrame
  • Changed signature of pivot and melt methods
  • Changed signature of date_range and date_ranges methods
  • Changed set_sorted method to only accept a single column
  • Removed use_earliest option from replace_time_zone and to_datetime methods (use ambiguous instead)
  • Removed by and closed options from rolling_* methods (use rolling_*_by instead)
  • Removed explode method from StringExpr (use split("").explode instead)
  • Removed set_ordering method from CatExpr

0.11.0 (2024-06-02)

  • Updated Polars to 0.40.0
  • Added date_ranges method to Polars
  • Added read_ipc_stream method to Polars
  • Added write_ipc_stream to DataFrame
  • Added flags method to DataFrame
  • Added support for keyword arguments to agg methods
  • Aliased apply to map_rows for DataFrame
  • Changed default name for with_row_index from row_nr to index

0.10.0 (2024-05-02)

  • Updated Polars to 0.39.2
  • Added support for writing JSON to string
  • Added support for writing Parquet to StringIO
  • Added support for cross joins
  • Added data_page_size option to write_parquet method
  • Added truncate_ragged_lines option to read_csv, read_csv_batched, and scan_csv methods
  • Added precompiled gem for Linux x86-64 MUSL
  • Changed drop method to ignore missing columns
  • Fixed error with then method

0.9.0 (2024-03-03)

See the upgrade guide

  • Updated Polars to 0.38.1
  • Changed count method to exclude null values
  • Changed dtype and schema methods to always return instances of data types
  • Added Enum type
  • Added Testing module
  • Added arctan2, arctan2d, set_random_seed, and sql_expr methods to Polars
  • Added enable_string_cache, disable_string_cache, and using_string_cache to Polars
  • Added methods for horizontal aggregations to Polars
  • Added sink_ipc, sink_csv, and sink_ndjson methods to LazyFrame
  • Added replace method to Series and Expr
  • Added eq, eq_missing, ne, and ne_missing methods to Series and Expr
  • Added ge, gt, le, and lt methods to Series and Expr
  • Added merge_sorted method to DataFrame and LazyFrame
  • Added more methods to ArrayExpr and ArrayNameSpace
  • Added more methods to CatExpr and CatNameSpace
  • Added more methods to ListExpr and ListNameSpace
  • Added more methods to MetaExpr
  • Added more methods to StringExpr
  • Added schema_overrides option to read_database method
  • Added join_nulls option to join method
  • Added ignore_nulls option to any and all methods
  • Aliased apply to map_elements for Series
  • Aliased cleared to clear for DataFrame and LazyFrame
  • Fixed error with BigDecimal objects

0.8.0 (2024-01-10)

  • Updated Polars to 0.36.2
  • Added support for Ruby 3.3
  • Added warning to count method for Series and Expr about excluding null values in 0.9.0
  • Added cut and qcut methods to Series and Expr
  • Added rle and rle_id methods to Series and Expr
  • Added bottom_k method to Series
  • Aliased Utf8 data type to String
  • Fixed error with top_k method
  • Dropped support for Ruby < 3.1

0.7.0 (2023-11-17)

  • Updated Polars to 0.35.2
  • Added support for SQL querying
  • Added ! for Expr
  • Added Config module
  • Added none? method to Series
  • Aliased groupby to group for DataFrame and LazyFrame
  • Changed series creation with all nil objects to Null type
  • Removed tz_localize method from DateTimeExpr
  • Removed support for passing Active Record objects to DataFrame.new (use read_database instead)

0.6.0 (2023-07-23)

  • Updated Polars to 0.31.1
  • Added Array type
  • Added support for creating series with Datetime type
  • Added support for Null to to_a method
  • Improved support for Decimal and Time types
  • Changed arr to list for Series and Expr
  • Changed series creation with BigDecimal objects to Decimal type
  • Changed series creation with ActiveSupport::TimeWithZone objects to Datetime type
  • Changed equality for data types
  • Fixed error with groupby_dynamic method
  • Removed agg_list method from GroupBy

0.5.0 (2023-05-15)

  • Updated Polars to 0.29.0
  • Added support for List and Struct to to_a method
  • Added support for creating series from Numo arrays
  • Added column assignment to DataFrame
  • Added sort! and to_a methods to DataFrame
  • Added support for Object to to_a method
  • Aliased len to size for Series and DataFrame
  • Aliased apply to map and unique to uniq for Series
  • Improved any and all for Series

0.4.0 (2023-04-01)

  • Updated Polars to 0.28.0
  • Added support for creating Binary series
  • Added support for Binary to to_a method
  • Added support for glob patterns to read_parquet method
  • Added sink_parquet method to LazyFrame
  • Added BinaryExpr and BinaryNameSpace
  • Prefer read_database over read_sql

0.3.1 (2023-02-21)

  • Added plot method to DataFrame and GroupBy
  • Added to_numo method to Series and DataFrame
  • Added support for Datetime to to_a method
  • Fixed is_datelike method for Datetime and Duration

0.3.0 (2023-02-15)

  • Updated Polars to 0.27.1
  • Added each method to Series, DataFrame, and GroupBy
  • Added iter_rows method to DataFrame
  • Added named option to row and rows methods
  • Replaced include_bounds option with closed for is_between method

0.2.5 (2023-02-01)

  • Added support for glob patterns to read_csv method
  • Added support for symbols to more methods

0.2.4 (2023-01-29)

  • Added support for more types when creating a data frame from an array of hashes

0.2.3 (2023-01-22)

  • Fixed error with precompiled gem on Mac ARM
  • Fixed issue with structs

0.2.2 (2023-01-20)

  • Added support for strings to read_sql method
  • Improved indexing
  • Fixed error with precompiled gem on Mac ARM

0.2.1 (2023-01-18)

  • Added read_sql method
  • Added to_csv method
  • Added support for symbol keys

0.2.0 (2023-01-14)

  • Updated Polars to 0.26.1
  • Added precompiled gems for Linux and Mac
  • Added data type classes
  • Changed dtype and schema methods to return data type class instead of symbol
  • Dropped support for Ruby < 3

0.1.5 (2022-12-22)

  • Added read_avro and write_avro methods
  • Added more methods

0.1.4 (2022-12-02)

  • Added more methods
  • Improved performance

0.1.3 (2022-11-27)

  • Added more methods

0.1.2 (2022-11-25)

  • Added more methods

0.1.1 (2022-11-23)

  • Added more methods

0.1.0 (2022-11-21)

  • First release