What’s new in 3.1.1 (November 4, 2026)#

These are the changes in pandas 3.1.1. See Release notes for a full changelog including other versions of pandas.

Fixed regressions#

  • Fixed a regression in DataFrame.astype(), Series.astype() and DataFrame.convert_dtypes() with dtype_backend="pyarrow" overwriting missing values of the original datetime data with the Unix epoch when converting to a pyarrow timestamp type (GH 71743)

  • Fixed a regression in Series.map() with datetime-like values returning a read-only Series, causing subsequent assignment to fail (GH 71567)

  • Fixed a regression in IO readers and writers such as read_csv() and DataFrame.to_csv() treating path objects that have read or write methods, such as py.path.local (pytest’s tmpdir), as open file handles, raising or silently writing incomplete files (GH 71769)

Bug fixes#

  • Compatibility with python-dateutil 3.0: fixed an AttributeError when using dateutil timezones such as "dateutil/US/Pacific" with python-dateutil >= 3.0 (GH 71459)

  • Fixed a bug in Series.ffill() and Series.bfill() (and DataFrame equivalent) on a PyArrow-backed column without missing values (including the default str dtype) where the result shared data with the original, so modifying one also changed the other, violating Copy-on-Write semantics (GH 71515)

  • Fixed a bug in string methods using regex patterns on PyArrow-backed string dtypes where \s incorrectly did not match (and \S matched) whitespace such as "\x0b" and "\x1c" in all-ASCII data (GH 70991)

Build#

  • Fixed a build error on architectures not supported by xsimd, such as s390x (GH 71548)

Contributors#

A total of 7 people contributed patches to this release. People with a “+” by their names contributed a patch for the first time.

  • Enrico Lockner +

  • Joris Van den Bossche

  • Maha Rana Yadavalli

  • Matthew Roeschke

  • jbrockmendel

  • pandas Development Team

  • Álvaro Kothe