-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
REGR: Prevent indexes that aren't directly backed by numpy from entering libreduction code paths #31238
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
jreback
merged 5 commits into
pandas-dev:master
from
jschendel:regr-groupby-extension-index
Jan 28, 2020
Merged
REGR: Prevent indexes that aren't directly backed by numpy from entering libreduction code paths #31238
Changes from 1 commit
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
dea76c1
REGR: Fix GroupBy aggregation with ExtensionArray backed index
jschendel ed3a9a3
add back _has_complex_internals
jschendel 2efd22b
Merge remote-tracking branch 'upstream/master' into regr-groupby-exte…
TomAugspurger 1018ca9
prevent fast_apply case for _has_complex_internals
jschendel cc400cd
update comment
jschendel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for EA cases, we want to avoid going through libreduction altogether
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you mean? We shouldn't be hitting this code path in the first place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, yeah what does this do to the categorical grouping case. This should be a highly optimized path, is this still?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct. This is called from core.apply.FrameApply.apply_standard after a check:
The MultiIndex check may need to be expanded to include EAs.
I think this is called from one other place in non-test code, so the missing check may belong there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I vaguely recall a
_has_complex_...
property that indicated with the Index was backed by an ndarray. Was that removed?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
self._has_complex_internals
was equivalent to toisinstance(self, MultiIndex)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The issue in question doesn't actually go through
FrameApply.apply_standard
, but rather_aggregate_series_fast
, which dispatches throughlibreduction
. The point still applies that we want to avoid EA backed indexes inFrameApply.apply_standard
, so I've modified the check to use_has_complex_internals
.