PERF: speed up IntervalIndex._intersection_non_unique by ~50x #27489
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've been backfilling

asv
data and noticed the following regression inIntervalIndexMethod.time_intersection_both_duplicate
(see here):This regression was missed as the benchmark was added in #26711, which was after introduction in #26225.
This PR both simplifies the
IntervalIndex._intersection_non_unique
logic (now equivalent toMultiIndex._intersection_non_unique
) and provides a~50x
speedup:The new numbers are about
10x
faster than the old baseline.black pandas
git diff upstream/master -u -- "*.py" | flake8 --diff