What’s new in 3.0.4 (June 28, 2026)#

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

Fixed regressions#

  • Fixed a performance regression in Series.searchsorted() and Index.searchsorted() with the string dtype, where a full O(n) NA scan made the operation much slower than the binary search itself (GH 65837)

  • Fixed a regression in isin() raising an error when checking for pd.NA with ArrowDtype, which also affected DataFrame.drop() with ArrowDtype-backed indexes (GH 63304)

  • Fixed a regression in arithmetic operations involving StringDtype and custom Python objects incorrectly raising instead of returning object-dtype results (GH 64107)

  • Fixed a regression in localizing timestamps beyond the year 2100 when using zoneinfo timezones (GH 65733)

  • Fixed a regression in setting into a DataFrame with MultiIndex columns and mixed-dtype level silently doing nothing (GH 65118)

Bug fixes#

  • Fixed a bug in DataFrame.iloc() silently ignoring the assignment when setting values with an unordered or duplicated column indexer on a DataFrame whose values are referenced by another object (GH 65446)

  • Fixed a bug in DataFrame.to_sql() and read_sql_table() when using an ADBC engine where table and schema names were not quoted as SQL identifiers, causing failures for identifiers containing spaces or reserved words, and making it vulnerable to SQL injection (GH 65065)

  • Fixed a bug in Series.str.__getitem__() raising AttributeError when underlying array is ArrowExtensionArray (GH 65112)

  • Fixed a bug in Series.str.match() and Index.str.match() with PyArrow-backed string dtypes where a leading ^ only anchored the first branch of an alternation pattern (e.g. r"^foo|bar") (GH 66069)

  • Fixed a bug in eval() not honoring Copy-on-Write with the Python engine when columns were reused in the expression, causing unexpected mutation of the original DataFrame (GH 65664)

  • Fixed a bug in arithmetic adding or subtracting a non-tick DateOffset (e.g. offsets.MonthEnd, offsets.QuarterEnd) to datetime data that could cause a segmentation fault when another thread was running concurrently, e.g. under pytest-xdist (GH 66031)

Contributors#

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

  • Alberto Cardenas +

  • Claude Opus 4.8 (1M context) +

  • Elliott Sales de Andrade

  • GAUTAM V DATLA +

  • Jeongmin Gil

  • Joris Van den Bossche

  • Lumberbot (aka Jack)

  • Matthew Roeschke

  • Richard Shadrach

  • Thomas H

  • dependabot[bot]

  • github-actions[bot]

  • jbrockmendel

  • pandas Development Team