github snowflakedb/snowpark-python v1.43.0
Release

4 hours ago

1.43.0 (2025-12-03)

Snowpark Python API Updates

New Features

  • Added support for DataFrame.lateral_join
  • Added support for PrPr feature Session.client_telemetry.
  • Added support for Session.udf_profiler.
  • Added support for functions.ai_translate.
  • Added support for the following iceberg_config options in DataFrameWriter.save_as_table and DataFrame.copy_into_table:
    • target_file_size
    • partition_by
  • Added support for the following functions in functions.py:
    • String and Binary functions:

      • base64_decode_binary
      • bucket
      • compress
      • day
      • decompress_binary
      • decompress_string
      • md5_binary
      • md5_number_lower64
      • md5_number_upper64
      • sha1_binary
      • sha2_binary
      • soundex_p123
      • strtok
      • truncate
      • try_base64_decode_binary
      • try_base64_decode_string
      • try_hex_decode_binary
      • try_hex_decode_string
      • unicode
      • uuid_string
    • Conditional expressions:

      • booland_agg
      • boolxor_agg
      • regr_valy
      • zeroifnull
    • Numeric expressions:

      • cot
      • mod
      • pi
      • square
      • width_bucket

Bug Fixes

  • Fixed a bug where automatically-generated temporary objects were not properly cleaned up.
  • Fixed with a bug when sql generation when joining two DataFrames created using DataFrame.alias and CTE optimization is enabled.
  • Fixed a bug in XMLReader where finding the start position of a row tag could return an incorrect file position.

Improvements

  • Enhanced DataFrame.sort() to support ORDER BY ALL when no columns are specified.
  • Removed experimental warning from Session.cte_optimization_enabled.

Snowpark pandas API Updates

New Features

  • Added support for Dataframe.groupby.rolling().
  • Added support for mapping np.percentile with DataFrame and Series inputs to Series.quantile.
  • Added support for setting the random_state parameter to an integer when calling DataFrame.sample or Series.sample.
  • Added support for the following iceberg_config options in to_iceberg:
    • target_file_size
    • partition_by

Improvements

  • Enhanced autoswitching functionality from Snowflake to native pandas for methods with unsupported argument combinations:
    • shift() with suffix or non-integer periods parameters
    • sort_index() with axis=1 or key parameters
    • sort_values() with axis=1
    • melt() with col_level parameter
    • apply() with result_type parameter for DataFrame
    • pivot_table() with sort=True, non-string index list, non-string columns list, non-string values list, or aggfunc dict with non-string values
    • fillna() with downcast parameter or using limit together with value
    • dropna() with axis=1
    • asfreq() with how parameter, fill_value parameter, normalize=True, or freq parameter being week, month, quarter, or year
    • groupby() with axis=1, by!=None and level!=None, or by containing any non-pandas hashable labels.
    • groupby_fillna() with downcast parameter
    • groupby_first() with min_count>1
    • groupby_last() with min_count>1
    • groupby_shift() with freq parameter
  • Slightly improved the performance of agg, nunique, describe, and related methods on 1-column DataFrame and Series objects.

Bug Fixes

  • Fixed a bug in DataFrameGroupBy.agg where func is a list of tuples used to set the names of the output columns.
  • Fixed a bug where converting a modin datetime index with a timezone to a numpy array with np.asarray would cause a TypeError.
  • Fixed a bug where Series.isin with a Series argument matched index labels instead of the row position.

Improvements

  • Add support for the following in faster pandas:
    • groupby.apply
    • groupby.nunique
    • groupby.size
    • concat
    • copy
    • str.isdigit
    • str.islower
    • str.isupper
    • str.istitle
    • str.lower
    • str.upper
    • str.title
    • str.match
    • str.capitalize
    • str.__getitem__
    • str.center
    • str.count
    • str.get
    • str.pad
    • str.len
    • str.ljust
    • str.rjust
    • str.split
    • str.replace
    • str.strip
    • str.lstrip
    • str.rstrip
    • str.translate
    • dt.tz_localize
    • dt.tz_convert
    • dt.ceil
    • dt.round
    • dt.floor
    • dt.normalize
    • dt.month_name
    • dt.day_name
    • dt.strftime
    • dt.dayofweek
    • dt.weekday
    • dt.dayofyear
    • dt.isocalendar
    • rolling.min
    • rolling.max
    • rolling.count
    • rolling.sum
    • rolling.mean
    • rolling.std
    • rolling.var
    • rolling.sem
    • rolling.corr
    • expanding.min
    • expanding.max
    • expanding.count
    • expanding.sum
    • expanding.mean
    • expanding.std
    • expanding.var
    • expanding.sem
    • cumsum
    • cummin
    • cummax
    • groupby.groups
    • groupby.indices
    • groupby.first
    • groupby.last
    • groupby.rank
    • groupby.shift
    • groupby.cumcount
    • groupby.cumsum
    • groupby.cummin
    • groupby.cummax
    • groupby.any
    • groupby.all
    • groupby.unique
    • groupby.get_group
    • groupby.rolling
    • groupby.resample
    • to_snowflake
    • to_snowpark
    • resample.min
    • resample.max
    • resample.count
    • resample.sum
    • resample.mean
    • resample.median
    • resample.std
    • resample.var
    • resample.size
    • resample.first
    • resample.last
    • resample.quantile
    • resample.nunique
  • Make faster pandas disabled by default (opt-in instead of opt-out).
  • Improve performance of drop_duplicates by avoiding joins when keep!=False in faster pandas.

Don't miss a new snowpark-python release

NewReleases is sending notifications on new releases.