CHANGELOG.md
July 10, 2026 ยท View on GitHub
0.26.1 (unreleased)
- Added support for more types to
scan_icebergmethod - Fixed return dtype for
cum_sum_horizontalmethod
0.26.0 (2026-06-04)
- Updated Polars to 0.54.4
- Added
truncatemethod toSeriesandExpr - Added
gathermethod toDataFrameandLazyFrame - Added
is_emptymethod toExpr - Added
getmethod toBinaryNameSpace - Added
maintain_orderoption toimplodeandmerge_sortedmethods - Added
holidaysoption toadd_business_daysandis_business_daymethods - Added
column_namingoption topivotmethod - Added
dtypeoption toreinterpretmethod - Added
nulls_lastoption toset_sortedmethod - Added support for non-UTC time zones when converting datetime values to Ruby
- Made
bigdecimaloptional - Fixed
unpivotmethod whenonoption isnil
Changed defaults
- Changed default
nameforread_linesandscan_linesmethods fromlinestoline - Changed default
howforalign_framesmethod fromlefttofull - Changed default
min_samplesforrolling_sum_bymethod from1to0 - Changed default
with_replacementforsamplemethod fromtruetofalseforExpr - Changed default
baseforentropymethod from2toMath::EforExpr - Changed default
normalizeforentropymethod fromfalsetotrueforSeries - Changed default
delimiterforjoinmethod from-to empty string forStringExprandStringNameSpace
0.25.1 (2026-03-23)
- Added
explain_allmethod toPolars - Fixed
storage_optionsoption forscan_parquetandscan_ipcmethods - Fixed
Structconstruction withnilvalues - Fixed
read_databasemethod for JSON columns
0.25.0 (2026-02-18)
- Updated Polars to 0.53.0
- Added
Float16type - Changed
eachmethod forGroupByto always returnArraykeys
Added methods
- Added
self_dtypemethod toPolars - Added
map_batchesmethod toPolars,Expr, andLazyFrame - Added
map_groupsmethod toPolars,GroupBy,DynamicGroupBy,RollingGroupBy, andLazyGroupBy - Added
map_columnsmethod toDataFrame - Added
map_elementsandpipemethods toExpr - Added
pivotmethod toLazyFrame - Added
sqlmethod toSeries - Added
havingmethod toGroupBy,DynamicGroupBy,RollingGroupBy, andLazyGroupBy - Added
meanmethod toArrayNameSpace - Added
slice,head, andtailmethods toBinaryExprandBinaryNameSpace - Added
getmethod toBinaryExpr - Added
as_expressionmethod toMetaExpr - Added
map_fieldsmethod toNameExpr
Added options
- Added
compression,compression_level, andcheck_extensionoptions towrite_csvmethod - Added
empty_as_nullandkeep_nullsoptions toexplodemethod - Added
ignore_nullsoption tofirstandlastmethods - Added
leftmostoption tofind_many,extract_many, andreplace_manymethods - Added
maintain_orderoption tomodemethod - Added
strictoption toconcatandunionmethods forPolars - Added
null_on_ooboption togetmethod forExpr - Added
literalandstrictoptions tosplitmethod forStringExpr
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
schemamethod to returnSchemainstead ofHash - Changed
partition_by(as_dict: true)method to always returnArraykeys - Removed support for string and symbol data types (
:i32,:f64, etc.) - Dropped support for Ruby < 3.3
Changed defaults
- Changed default
statisticsforwrite_parquetmethod fromfalsetotrue - Changed default
compressionforsink_ipcmethod fromzstdtouncompressed - Changed default
raise_if_emptyforread_csvmethod fromfalsetotrue - Changed default
eagerforonesandzerosmethod fromtruetofalse - Changed default
ignore_nullsforewm_mean,ewm_std, andewm_varmethods fromtruetofalse - Changed default
null_on_oobforgetmethod fromtruetofalse - Changed default
maintain_orderforuniquemethod fromtruetofalseforDataFrameandLazyFrame - Changed default
keepforuniquemethod fromfirsttoanyforDataFrameandLazyFrame - Changed default
null_equalforequalsmethod fromfalsetotrueforSeries - Changed default
strictfordecodemethod fromfalsetotrueforStringNameSpace
Added methods
- Added
plotmethod toSeries - Added
concat_arr,escape_regex,int_ranges, andlinear_spacesmethods toPolars - Added
rolling_rankandrolling_rank_bymethods toSeriesandExpr - Added
days_in_monthmethod toDateTimeExprandDateTimeNameSpace - Added
agganditemmethods toListExprandListNameSpace - Added
aggandevalmethods toArrayExprandArrayNameSpace - Added
replacemethod toNameExpr
Added options
- Added more options to
read_csvandscan_csvmethods - Added more options to
read_ndjsonandscan_ndjsonmethods - Added more options to
write_csvmethod - Added more options to
sortmethod - Added more options to
overmethod - Added
ambiguousoption tostrptimemethod
Renamed options
- Renamed
reverseoption todescending - Renamed
sepoption toseparator - Renamed
row_count_nameoption torow_index_name - Renamed
row_count_offsetoption torow_index_offset - Renamed
comment_charoption tocomment_prefixforread_csv,read_csv_batched, andscan_csvmethods - Renamed
dtypesoption toschema_overridesforread_csv,read_csv_batched, andscan_csvmethods - Renamed
parse_datesoption totry_parse_datesforread_csv,read_csv_batched, andscan_csvmethods - Renamed
min_periodsoption tomin_samples - Renamed
byoption togroup_byforgroup_by_dynamic,rolling, andupsamplemethods - Renamed
fracoption tofractionforsamplemethods - Renamed
drop_nullsoption toignore_nullsforallandanymethods - Renamed
join_nullsoption tonulls_equalforjoinmethod - Renamed
strictoption tocheck_dtypesforequalsmethod - Renamed
quoteoption toquote_charforwrite_csvmethod - Renamed
data_pagesize_limitoption todata_page_sizeforsink_parquetmethod - Renamed
unitoption totime_unitforfrom_epochmethod - Renamed
eager_executionoption toeagerforSQLContextconstructor
Removed methods
- Removed
takeandtake_everymethods (usegatherandgather_everyinstead) - Removed
clip_minandclip_maxmethods (useclipinstead) - Removed
argsortandargsort_bymethods (usearg_sortandarg_sort_byinstead) - Removed
shift_and_fillmethods (useshift(fill_value:)instead) - Removed
group,groupby,groupby_dynamic, andgroupby_rollingmethods (usegroup_by*instead) - Removed
group_by_rollingmethods (userollinginstead) - Removed
asin,asinh,acos,acosh,atan, andatanhmethods (usearc*instead) - Removed
days,hours,minutes,seconds,milliseconds,microseconds, andnanosecondsmethods (usetotal_*instead) - Removed
cumsum,cumsum_horizontal,cumprod,cummin,cummax,cumcount, andcumfoldmethods (usecum_*instead) - Removed
with_columnmethods (usewith_columnsinstead) - Removed
wheremethod (usefilterinstead) - Removed
series_equalandframe_equalmethods (useequalsinstead) - Removed
applymethods (usemap_elementsormap_rowsinstead) - Removed
lengthsmethods (uselenorlen_bytesinstead) - Removed
keep_name,prefix,suffix, andmap_aliasmethods (usenamemethods instead) - Removed
ljustandrjustmethods (usepad_endandpad_startinstead) - Removed
lstripandrstripmethods (usestrip_chars_startandstrip_chars_endinstead) - Removed
stripmethod (usestrip_charsinstead) - Removed
n_charsmethod (uselen_charsinstead) - Removed
parse_intmethod (useto_integerinstead) - Removed
json_extractmethod (usejson_decodeinstead) - Removed
clearedmethods (useclearinstead) - Removed
meltmethod (useunpivotinstead) - Removed
count_matchmethods (usecount_matchesinstead) - Removed
is_numeric,is_datelike,is_temporal,is_float,is_bool,is_boolean, andis_utf8methods fromSeries(usedtypemethods instead) - Removed
numeric?,datelike?,temporal?,float?,bool?,boolean?, andutf8?methods fromSeries(usedtypemethods instead) - Removed
is_firstmethod (useis_first_distinctinstead) - Removed
approx_uniquemethod (useapprox_n_uniqueinstead) - Removed
set_at_idxmethod (usescatterinstead) - Removed
insert_at_idxandreplace_at_idxmethods (useinsert_columnandreplace_columninstead) - Removed
find_idx_by_namemethod (useget_column_indexinstead) - Removed
avgmethod (usemeaninstead) - Removed
arctan2dmethod (usearctan2+degreesinstead) - Removed
read_sqlmethod (useread_databaseinstead) - Removed
with_row_countmethods (usewith_row_indexinstead) - Removed
has_validitymethod (usehas_nullsinstead) - Removed
shrink_dtypemethod fromExpr(useSeries#shrink_dtypeinstead) - Removed
replacemethod fromDataFrame(use[]=instead) - Removed
read_jsonandwrite_jsonmethods fromLazyFrame(usedeserializeandserializeinstead) - Removed
fetchmethod fromLazyFrame(usehead+collectinstead) - Removed
with_contextmethod fromLazyFrame(usePolars.concat(how: "horizontal")instead) - Removed
with_time_unitmethod fromDateTimeExprandDateTimeNameSpace(usecast(Polars::Int64).cast(Polars::Datetime.new(...))instead) - Removed
datetimemethod fromDateTimeExpr(usereplace_time_zoneinstead) - Removed
meanandmedianmethods fromDateTimeNameSpace(useSeries#meanandSeries#medianinstead) - Removed
concatmethod fromStringExprandStringNameSpace(usejoin("-")instead) - Removed
describe_plananddescribe_optimized_planmethods (useexplaininstead) - Removed
plotmethod fromGroupBy(useDataFrame#plotinstead)
Removed options
- Removed
dtype_if_emptyoption fromSeriesconstructor - Removed
warn_if_unsortedoption fromrolling_*_bymethods - Removed
in_placeoption fromrenamemethod - Removed
append_chunksoption fromappendmethod - Removed
nameoption fromrepeatmethod - Removed
utcoption fromstrptimemethod - Removed
truncateoption fromgroup_by_dynamicmethods - Removed
eageroption fromfrom_epochmethod - Removed
string_cacheoption fromcollectandcollect_allmethods
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
serializeanddeserializemethods toDataFrame - Added
storage_optionsandretriesoptions tosink_ipcmethod - Added
business_day_countmethod toPolars - Added experimental support for Iceberg
- Added experimental
cast_optionsoption toscan_parquetmethod - Changed
read_parquet_schemamethod to returnSchema - Fixed
Objecttype
0.21.1 (2025-08-18)
- Added
read_parquet_metadatamethod toPolars - Added more methods to
SeriesandExpr - Added more methods to
DataFrameandLazyFrame - Added more methods to
ArrayExprandArrayNameSpace - Added more methods to
BinaryExprandBinaryNameSpace - Added more methods to
CatExprandCatNameSpace - Added more methods to
DateTimeExprandDateTimeNameSpace - Added more methods to
ListExprandListNameSpace - Added more methods to
MetaExpr - Added more methods to
NameExpr - Added more methods to
StringExprandStringNameSpace - Added more methods to
StructExprandStructNameSpace - Fixed
subsetoption fordrop_nullsmethod
0.21.0 (2025-08-03)
- Updated Polars to 0.50.0
- Added
Catalogclass - Added
rows_by_keymethod toDataFrame - Added set methods to
ListExprandListNameSpace - Added
filtermethod toListExprandListNameSpace - Added
extra_columnsoption toscan_parquetmethod - Removed
columnsoption fromDataFrameconstructor (useschemainstead) - Removed
has_headeroption fromwrite_csvmethod (useinclude_headerinstead)
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_relaxedandalignstrategies toconcatmethod - Added
interpolate_bymethod toSeriesandExpr - Added
iter_columnsanditer_slicesmethods toDataFrame - Added
maintain_orderoption tojoinmethod - Added
collect_schemamethod toDataFrame - Added
write_databasemethod toDataFrame(experimental) - Fixed error with
to_numomethod forBooleanseries with null values - Fixed error with
slicemethod and negative offset
0.17.0 (2025-01-28)
- Updated Polars to 0.46.0
- Changed
write_jsonmethod forDataFrameto be row-oriented - Fixed error with
Seriesconstructor andstrict: 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_nameselector - Added
thread_pool_sizemethod toPolars - Removed
axisoption frommin,max,sum, andmeanmethods (use*_horizontalinstead) - 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
URIobject for remote files - Added support for scanning files from cloud storage
- Added experimental support for Arrow C streams
- Added selectors
- Added
config,string_cache, andcsmethods toPolars - Added
strictoption toDataFrameconstructor - Added
compat_leveloption towrite_ipcandwrite_ipc_streammethods - Added
nameoption towrite_avromethod - Added support for array of name-type pairs to
schemaoption - Added
castmethod toDataFrameandLazyFrame - Added
coalesceoption tojoinandjoin_asofmethods - Added
validateoption tojoinmethod - Added
strictoption torenamemethod - Changed
rechunkoption default fromtruetofalseforscan_parquetmethod - Fixed
limitmethod forLazyFrame - Fixed
read_databaseconnection leasing for Active Record 7.2 - Removed
get_dummiesmethod fromPolars(usedf.to_dummiesinstead) - Removed
to_listmethod fromPolars(usecol(name).listinstead) - Removed
spearman_rank_corrmethod fromPolars(usecorr(method: "spearman")instead) - Removed
pearson_corrmethod fromPolars(usecorr(method: "pearson")instead) - Removed
inner_dtypeandtime_unitmethods fromSeries
0.14.0 (2024-09-17)
- Updated Polars to 0.43.1
- Fixed
fracoption forsamplemethod
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
nthmethod toPolars - Added
getmethod toExpr - Added
check_namesoption toequalsmethod - Improved
structmethod - Aliased
melttounpivotforDataFrameandLazyFrame - Changed signature of
pivotandmeltmethods - Changed signature of
date_rangeanddate_rangesmethods - Changed
set_sortedmethod to only accept a single column - Removed
use_earliestoption fromreplace_time_zoneandto_datetimemethods (useambiguousinstead) - Removed
byandclosedoptions fromrolling_*methods (userolling_*_byinstead) - Removed
explodemethod fromStringExpr(usesplit("").explodeinstead) - Removed
set_orderingmethod fromCatExpr
0.11.0 (2024-06-02)
- Updated Polars to 0.40.0
- Added
date_rangesmethod toPolars - Added
read_ipc_streammethod toPolars - Added
write_ipc_streamtoDataFrame - Added
flagsmethod toDataFrame - Added support for keyword arguments to
aggmethods - Aliased
applytomap_rowsforDataFrame - Changed default
nameforwith_row_indexfromrow_nrtoindex
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_sizeoption towrite_parquetmethod - Added
truncate_ragged_linesoption toread_csv,read_csv_batched, andscan_csvmethods - Added precompiled gem for Linux x86-64 MUSL
- Changed
dropmethod to ignore missing columns - Fixed error with
thenmethod
0.9.0 (2024-03-03)
See the upgrade guide
- Updated Polars to 0.38.1
- Changed
countmethod to exclude null values - Changed
dtypeandschemamethods to always return instances of data types - Added
Enumtype - Added
Testingmodule - Added
arctan2,arctan2d,set_random_seed, andsql_exprmethods toPolars - Added
enable_string_cache,disable_string_cache, andusing_string_cachetoPolars - Added methods for horizontal aggregations to
Polars - Added
sink_ipc,sink_csv, andsink_ndjsonmethods toLazyFrame - Added
replacemethod toSeriesandExpr - Added
eq,eq_missing,ne, andne_missingmethods toSeriesandExpr - Added
ge,gt,le, andltmethods toSeriesandExpr - Added
merge_sortedmethod toDataFrameandLazyFrame - Added more methods to
ArrayExprandArrayNameSpace - Added more methods to
CatExprandCatNameSpace - Added more methods to
ListExprandListNameSpace - Added more methods to
MetaExpr - Added more methods to
StringExpr - Added
schema_overridesoption toread_databasemethod - Added
join_nullsoption tojoinmethod - Added
ignore_nullsoption toanyandallmethods - Aliased
applytomap_elementsforSeries - Aliased
clearedtoclearforDataFrameandLazyFrame - Fixed error with
BigDecimalobjects
0.8.0 (2024-01-10)
- Updated Polars to 0.36.2
- Added support for Ruby 3.3
- Added warning to
countmethod forSeriesandExprabout excluding null values in 0.9.0 - Added
cutandqcutmethods toSeriesandExpr - Added
rleandrle_idmethods toSeriesandExpr - Added
bottom_kmethod toSeries - Aliased
Utf8data type toString - Fixed error with
top_kmethod - Dropped support for Ruby < 3.1
0.7.0 (2023-11-17)
- Updated Polars to 0.35.2
- Added support for SQL querying
- Added
!forExpr - Added
Configmodule - Added
none?method toSeries - Aliased
groupbytogroupforDataFrameandLazyFrame - Changed series creation with all
nilobjects toNulltype - Removed
tz_localizemethod fromDateTimeExpr - Removed support for passing Active Record objects to
DataFrame.new(useread_databaseinstead)
0.6.0 (2023-07-23)
- Updated Polars to 0.31.1
- Added
Arraytype - Added support for creating series with
Datetimetype - Added support for
Nulltoto_amethod - Improved support for
DecimalandTimetypes - Changed
arrtolistforSeriesandExpr - Changed series creation with
BigDecimalobjects toDecimaltype - Changed series creation with
ActiveSupport::TimeWithZoneobjects toDatetimetype - Changed equality for data types
- Fixed error with
groupby_dynamicmethod - Removed
agg_listmethod fromGroupBy
0.5.0 (2023-05-15)
- Updated Polars to 0.29.0
- Added support for
ListandStructtoto_amethod - Added support for creating series from Numo arrays
- Added column assignment to
DataFrame - Added
sort!andto_amethods toDataFrame - Added support for
Objecttoto_amethod - Aliased
lentosizeforSeriesandDataFrame - Aliased
applytomapanduniquetouniqforSeries - Improved
anyandallforSeries
0.4.0 (2023-04-01)
- Updated Polars to 0.28.0
- Added support for creating
Binaryseries - Added support for
Binarytoto_amethod - Added support for glob patterns to
read_parquetmethod - Added
sink_parquetmethod toLazyFrame - Added
BinaryExprandBinaryNameSpace - Prefer
read_databaseoverread_sql
0.3.1 (2023-02-21)
- Added
plotmethod toDataFrameandGroupBy - Added
to_numomethod toSeriesandDataFrame - Added support for
Datetimetoto_amethod - Fixed
is_datelikemethod forDatetimeandDuration
0.3.0 (2023-02-15)
- Updated Polars to 0.27.1
- Added
eachmethod toSeries,DataFrame, andGroupBy - Added
iter_rowsmethod toDataFrame - Added
namedoption torowandrowsmethods - Replaced
include_boundsoption withclosedforis_betweenmethod
0.2.5 (2023-02-01)
- Added support for glob patterns to
read_csvmethod - 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_sqlmethod - Improved indexing
- Fixed error with precompiled gem on Mac ARM
0.2.1 (2023-01-18)
- Added
read_sqlmethod - Added
to_csvmethod - 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
dtypeandschemamethods to return data type class instead of symbol - Dropped support for Ruby < 3
0.1.5 (2022-12-22)
- Added
read_avroandwrite_avromethods - 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