Skip to content

Python Polars 0.18.0

Compare
Choose a tag to compare
@github-actions github-actions released this 29 May 20:01
· 3408 commits to refs/heads/main since this release
b665064

🏆 Highlights

  • Rename list namespace accesor from .arr to .list (#8999)

⚠️ Breaking changes

  • propagate null in equality comparisons (#9053)
  • formalize implode -> explode relation (#9038)
  • Drop subclassing support for DataFrame/LazyFrame (#9008)
  • consistently return list of date/datetime from lazy date_range (#8513)
  • Default date_range/ones/zeros to eager=False (#9007)
  • Rename list namespace accesor from .arr to .list (#8999)
  • disallow time zones other than those in zoneinfo.available_timezones() (#8993)
  • remove window expression magic (#8992)
  • raise error when sorted flag not set (#8994)
  • Drop subclassing support for GroupBy (#7746)
  • in Series constructor, if inputs are time-zone-aware datetimes, convert to UTC (#8881)
  • parse offset-naive date time strings as Timestamp(time_unit), offset-aware datetime strings as Timestamp(time_unit, "UTC"), and remove the utc argument (#8714)
  • Remove deprecated tz_aware argument (#8696)

🚀 Performance improvements

  • speed up write_csv for time-zone-aware columns (#9093)
  • parallelize rolling_window group materialization (#9095)
  • elide hot loop in hash joins (#9075)

✨ Enhancements

  • conversion from Utf8 to Decimal. (#9090)
  • default to checking sortedness in groupby_rolling… (#9063)
  • propagate null in equality comparisons (#9053)
  • warn if constructing Series with time-zone-aware datetimes (#9058)
  • implement apply for rolling/dynamic_groupby (#9049)
  • Support more data types in lazy repeat (#9046)
  • implement strategy=nearest for join_asof (#9024)
  • arr.sum expression (#9041)
  • formalize implode -> explode relation (#9038)
  • add array namespace and min/max expression (#9032)
  • improve error message on row-wise overflow (#9021)
  • properly apply slice at UNION level (#9018)
  • consistently return list of date/datetime from lazy date_range (#8513)
  • Default date_range/ones/zeros to eager=False (#9007)
  • disallow time zones other than those in zoneinfo.available_timezones() (#8993)
  • raise error when sorted flag not set (#8994)
  • in Series constructor, if inputs are time-zone-aware datetimes, convert to UTC (#8881)
  • parse offset-naive date time strings as Timestamp(time_unit), offset-aware datetime strings as Timestamp(time_unit, "UTC"), and remove the utc argument (#8714)

🐞 Bug fixes

  • rolling_groupy was returning incorrect results when offset was positive (#9082)
  • don't underflow on list.tail (#9089)
  • fix null/empty in List::take_unchecked (#9074)
  • repeat by (#9023)
  • raise in to_datetime/strptime if format contains hour but not minute directive (#9044)
  • Order of pl.Array arguments in docstring (#9059)
  • propagate nulls in broadcasting of order comparisons (#9050)
  • Improve read_parquet missing column error message (#8961)
  • fix apply with passed date/datetime return_dtype (#9035)
  • respect inner type in Array construction (#9020)
  • raise error on invalid aggregation (#9013)
  • fix fused arithmetic in window functions (#9012)
  • don't allow silent init of Series declared as int/temporal with floating point values (#9004)
  • deprecate time_unit property from Series (#8990)

🛠️ Other improvements

  • Improve expression parsing utils (#9094)
  • Refactor expression input parsing util (#9085)
  • Organize "as_datatype" functions (#9080)
  • Change eager path for repeat (#9048)
  • Clean up arange/date_range/time_range (#9027)
  • Drop subclassing support for DataFrame/LazyFrame (#9008)
  • minor SQLContext docstring cleanups (#9005)
  • Rename list namespace accesor from .arr to .list (#8999)
  • remove window expression magic (#8992)
  • Drop subclassing support for GroupBy (#7746)
  • refactor!(python): Remove old deprecated functionality (#8995)
  • Remove deprecated tz_aware argument (#8696)

Thank you to all our contributors for making this release possible!
@CloseChoice, @MarcoGorelli, @alexander-beedie, @charliegallop, @jonashaag, @mcrumiller, @raymead, @ritchie46, @sorhawell, @stinodego, @tim-habitat and @universalmind303