Dataframes powered by a multithreaded, vectorized query engine, written in Rust
by
to group_by
in DataFrame.upsample/group_by_dynamic/rolling
(#14840)from_repr
parameter from tbl
to data
(#15156)arr.n_unique
(#15296)read_database
support for SurrealDB
("ws" and "http") (#15269)Sequence
in from_records
(#15329)async
database calls (#15202)name
parameter to GroupBy.len
method (#15235)read_database
when reading from KΓΉzu graph database (#15218)map_elements
is called without return_dtype
specified (#15188)async
SQLAlchemy connections to read_database
(#15162)time_unit
in pl.duration
when nanoseconds is specified (#14987)strict
parameter to from_dict/from_records
(#15158)s.clear()
when dtype is Object
(#15315)Series.list.std
and Series.list.var
(#15267)LazyFrame
(#15331)from_dicts
(#15344)schema_overrides
contains nonexistent column name (#15290)dtype
input for int_range
and int_ranges
(#15339)LazyFrame
(#15297)strict
flag when constructing a Struct Series from any values (#15302)DataFrame
init from dict (#15217)check_sorted
in some cases (#15227)rle
expression (#15248)read_parquet
when columns
parameter is specified (#15229)cs.temporal()
selector uses wildcard time zone matching for Datetime
(#13683)TypeError
on constructor failure (#15178)timestamp
example (#15281)Series.search_sorted
(#14737)is_between
, and add an example (#15197)clear
operation (#15304)Cache[count]
to Cache[cache_hits]
(#15300)PyDataFrame.from_dicts
(#15274)wrapping_abs
to arithmetic kernel (#15210)RUST_BACKTRACE=1
in the CI test suite (#15204)read_database
functionality into cleaner module structure (#15201)dataframe
module in PyO3 bindings (#15165)Thank you to all our contributors for making this release possible! @MarcoGorelli, @alexander-beedie, @braaannigan, @c-peters, @cojmeister, @deanm0000, @dependabot, @dependabot[bot], @itamarst, @kszlim, @mbuhidar, @mcrumiller, @mickvangelderen, @orlp, @petrosbar, @reswqa, @ritchie46, @rob-sil, @sportfloh, @stinodego and @yutannihilation
(first|last)_non_null
(#15050)closed
and by
are passed to rolling_*
aggregations (#15108)by
of invalid dtype (#15088)non_existent
arg to replace_time_zone
(#15062)register_plugin
a standalone function and include shared lib discovery (#14804)strict=false
(#15025)u32
when sum_horizontal
provided with single boolean column (#15114)eprintln!
is only called within debug/verbose context (#15100)product
on an invalid type (#15093)max()
on sorted float arrays if it exists instead of NaN (#15060)nulls_last
in streaming sort (#15061)count
agg (#15051)string_addition_to_linear_concat
(#15006)clippy:assigning_clones
lint (#14999)Thank you to all our contributors for making this release possible! @JackRolfe, @MKisilyov, @MarcoGorelli, @alexander-beedie, @c-peters, @flisky, @jqnatividad, @mcrumiller, @mickvangelderen, @nameexhaustion, @orlp, @petrosbar, @ritchie46, @stinodego and @trueb2
(first|last)_non_null
(#15050)read_database
results (#15126)closed
and by
are passed to rolling_*
aggregations (#15108)by
of invalid dtype (#15088)non_existent
arg to replace_time_zone
(#15062)register_plugin
a standalone function and include shared lib discovery (#14804)infer_schema_length
parameter on read_database
(#15076)strict
parameter to DataFrame
constructor to allow non-strict construction (#15034)u32
when sum_horizontal
provided with single boolean column (#15114)product
on an invalid type (#15093)max()
on sorted float arrays if it exists instead of NaN (#15060)nulls_last
in streaming sort (#15061)count
agg (#15051)string_addition_to_linear_concat
(#15006)new
and old
parameters in replace
description (#15019)Thank you to all our contributors for making this release possible! @JackRolfe, @MKisilyov, @MarcoGorelli, @alexander-beedie, @c-peters, @flisky, @jqnatividad, @mcrumiller, @mickvangelderen, @nameexhaustion, @orlp, @petrosbar, @ritchie46, @stinodego and @trueb2
(first|last)_non_null
(#15050)strict
parameter to DataFrame
constructor to allow non-strict construction (#15034)nulls_last
in streaming sort (#15061)count
agg (#15051)string_addition_to_linear_concat
(#15006)new
and old
parameters in replace
description (#15019)Thank you to all our contributors for making this release possible! @MKisilyov, @MarcoGorelli, @alexander-beedie, @c-peters, @flisky, @jqnatividad, @mcrumiller, @mickvangelderen, @nameexhaustion, @petrosbar, @ritchie46, @stinodego and @trueb2
sink_parquet
(#14964)cum_count
on columns (#14849)Array
type in parquet (#14943)NamedFrom
in df!
macro (#14860)cum_count
on columns (#14849)count_rows
multi-threaded under-counting in parser.rs (#14963)with_columns
(#14859)polars_bail!
in polars_ensure!
(#14901)DataFrame.min
/max
for decimals (#14890)asof
from join strategy, change parameter from strategy
to how
in user guide (#14793)fastexcel
(#14907)POLARS_FORCE_ASYNC
env var parsing (#14909)with_columns
attribute in physical csv scanner of default engine. (#14837)Thank you to all our contributors for making this release possible! @MarcoGorelli, @Sol-Hee, @alexander-beedie, @ambidextrous, @battmdpkq, @deanm0000, @dependabot, @dependabot[bot], @eitsupi, @flisky, @geekvest, @mcrumiller, @mickvangelderen, @nameexhaustion, @orlp, @petrosbar, @ritchie46 and @stinodego
sink_parquet
(#14964)Array
type in parquet (#14943)drop_first
parameter to Series.to_dummies
(#14846)read_database_uri
(#14682)count_rows
multi-threaded under-counting in parser.rs (#14963)read_database
behaviour with empty ODBC "iter_batches" (#14918)RecordBatch
objects when pyarrow <= 12
(#14922)read_database
now properly handles empty result sets from arrow-odbc
(#14916)with_columns
(#14859)include_index
in from_pandas
regarding "default indices" (#14920)fastexcel
(#14907)POLARS_FORCE_ASYNC
env var parsing (#14909)Thank you to all our contributors for making this release possible! @MarcoGorelli, @alexander-beedie, @ambidextrous, @battmdpkq, @mcrumiller, @mickvangelderen, @orlp, @petrosbar and @ritchie46
overwrite_schema
parameter for DataFrame.write_delta
(#14879)cum_count
on columns (#14849)__slots__
to Polars classes (#14857)fastexcel
to show_versions
(#14869)cum_count
on columns (#14849)pl.read_database
(#14822)DataFrame.min
/max
for decimals (#14890)__reduce__
implementation on DataType
object (#14778)ambiguous
instead of use_earliest
(#14820)asof
from join strategy, change parameter from strategy
to how
in user guide (#14793)utils
module to _utils
to explicitly mark it as private (#14772)_cpu_check
module (#14768)Thank you to all our contributors for making this release possible! @MarcoGorelli, @Sol-Hee, @alexander-beedie, @c-peters, @deanm0000, @dependabot, @dependabot[bot], @eitsupi, @flisky, @geekvest, @mcrumiller, @mickvangelderen, @nameexhaustion, @orlp, @petrosbar, @ritchie46 and @stinodego
Thank you to all our contributors for making this release possible! @alexander-beedie, @c-peters, @dependabot, @dependabot[bot], @ritchie46 and @stinodego
_cpu_check
("read_cpu_flags") (#14758)Thank you to all our contributors for making this release possible! @alexander-beedie, @ritchie46 and @stinodego
[!WARNING]
This release was deleted from PyPI. Please use the 0.20.13 release instead.
fill_null
value and default value of replace
(#14736)1-100x
. (#14746)list.contains()
for list of categoricals (#14744)DataFrame.sum
for decimals (#14732)datetime_to_int
util for AnyValue conversion (#14743)utils/convert.py
module (#14739)Thank you to all our contributors for making this release possible! @MarcoGorelli, @c-peters, @nameexhaustion, @orlp, @petrosbar, @ritchie46 and @stinodego