Skip to content

DEPR: groupby with duplicate index level names#64721

Draft
jbrockmendel wants to merge 4 commits intopandas-dev:mainfrom
jbrockmendel:depr-49434
Draft

DEPR: groupby with duplicate index level names#64721
jbrockmendel wants to merge 4 commits intopandas-dev:mainfrom
jbrockmendel:depr-49434

Conversation

@jbrockmendel
Copy link
Member

Summary

  • Deprecates grouping by an index level name when it matches multiple levels of a MultiIndex. Currently the first matching level is silently used, which is ambiguous. In a future version this will raise ValueError.
  • Adds a Pandas4Warning in Grouping._ilevel when a level name occurs more than once in a MultiIndex.
  • Adds test and whatsnew entry.

closes #49434

Test plan

  • New test test_groupby_duplicate_index_level_names passes
  • Existing groupby level tests unaffected
  • Pre-commit hooks pass

🤖 Generated with Claude Code

jbrockmendel and others added 4 commits March 11, 2026 17:03
…ions

Replace kh_get + kh_put patterns with kh_put alone (checking ret for
new-vs-existing), removing a redundant hash computation and probe
per element in value_count, _unique, duplicated(keep=False), and
get_labels_groupby.

Also clean up the vendored khash.h:
- Remove dead deletion-tracking code from kh_put/kh_get (deletions
  are disabled via __ac_isdel=0, but site variable and branches remained)
- Fix kh_clear to use 0xff (all-empty) instead of 0xaa, which was a
  leftover from the original 2-bit-per-slot flag scheme
- Remove unreachable shrink path from kh_put resize trigger
- Fix value_count object pre-sizing from n//10 to n

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deprecate grouping by an index level name when the name matches
multiple levels of a MultiIndex. The current behavior silently uses
the first matching level, which is ambiguous. In a future version
this will raise a ValueError.

closes pandas-dev#49434

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jbrockmendel jbrockmendel added the Deprecate Functionality to remove in pandas label Mar 19, 2026
@jbrockmendel jbrockmendel marked this pull request as draft March 20, 2026 00:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Deprecate Functionality to remove in pandas

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DEPR: Allowing grouping by an index label when there are duplicates

1 participant