What’s new in 2.3.3 (September 29, 2025) — pandas 3.0.0rc0+33.g1fd184de2a documentation (original) (raw)
These are the changes in pandas 2.3.3. See Release notes for a full changelog including other versions of pandas.
Pandas 2.3.3 is now compatible with Python 3.14#
Pandas 2.3.3 is the first version of pandas that is generally compatible with the upcoming Python 3.14, and both wheels for free-threaded and normal Python 3.14 will be uploaded for this release.
As usual please report any bugs discovered to our issue tracker
Improvements and fixes for the StringDtype#
Most changes in this release are related to StringDtype which will become the default string dtype in pandas 3.0. SeeUpcoming changes in pandas 3.0 for more details.
Improvements#
- Update DataFrame.select_dtypes() to keep selecting
strcolumns when specifyinginclude=["object"]for backwards compatibility. In a future release, this will be deprecated and code for pandas 3+ should be updated to doinclude=["str"](GH 61916) - Support the
/operation between apathlib.Pathobject and a StringDtypeSeries, similarly as it works for object-dtype Series (GH 61940)
Bug fixes#
- Fix bug in Series.str.replace() using named capture groups (e.g.,
\g<name>) with the Arrow-backed dtype would raise an error (GH 57636) - Fix regression in Series.str.contains(), match() and fullmatch()with a compiled regex and custom flags (GH 62240)
- Fix Series.str.match() and fullmatch() not matching patterns with groups correctly for the Arrow-backed string dtype (GH 61072)
- Fix bug in groupby() with
sum()and unobserved categories resulting in0instead of the empty string""(GH 61909) - Fix Series.str.isdigit() to correctly recognize unicode superscript characters as digits for StringDtype backed by PyArrow (GH 61466)
- Fix comparing a StringDtype Series with mixed objects raising an error (GH 60228)
- Fix error being raised when using a numpy ufunc with a Python-backed string array (GH 40800)
Other changes#
- The deprecation of using Series.resample() and DataFrame.resample()with a PeriodIndex (and the ‘convention’ keyword) has been undone. Resampling with a PeriodIndex is supported again, but a subset of methods that return incorrect results will raise an error in pandas 3.0 (GH 57033)
Other bug fixes#
- Fix memory leak in DataFrame.to_json() with datetime columns (GH 62204)
- Fixed regression in DataFrame.from_records() not initializing subclasses properly (GH 57008)
- The DataFrame.iloc() now works correctly with
copy_on_writeoption when assigning values after subsetting the columns of a homogeneous DataFrame (GH 60309)
Contributors#
A total of 15 people contributed patches to this release. People with a “+” by their names contributed a patch for the first time.
- ChiLin Chiu
- Evgenii Mosikhin +
- Ian Hunt-Isaak +
- Joris Van den Bossche
- Laurie O +
- Lumberbot (aka Jack)
- Matthew Roeschke
- Nathan Goldbaum
- Patrick Hoefler
- Richard Shadrach
- Scott Talbert
- jbrockmendel
- pandas Development Team
- ptth222 +
- Álvaro Kothe +