-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
REF: _cython_agg_blocks follow patterns similar to _apply_blockwise #35632
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
Conversation
…f-mgr-transform-3
…f-mgr-transform-3
…f-mgr-transform-3
…f-mgr-transform-3
…f-mgr-transform-3
pandas/core/groupby/generic.py
Outdated
@@ -1107,21 +1103,35 @@ def cast_result_block(result, block: "Block", how: str) -> "Block": | |||
# is a lie. To keep the code-path for the typical non-split case | |||
# clean, we choose to clean up this mess later on. | |||
assert len(locs) == result.shape[1] | |||
new_blocks = [] |
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.
can you type this
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.
can you type this
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.
and move this to a higher scope (as used in both parts)
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.
We only append to it in this scope, everywhere else we set it directly
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.
this is used in 3 blackes (sure you don't append and instead directly assign in the other scopes), but it is the same name. I would simply define it once, then append for each (or leave the assign for the others is ok i guess); it just is much easier to grok the fact that we are defining the same variable.
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.
done+green
pandas/core/groupby/generic.py
Outdated
@@ -1059,8 +1058,7 @@ def cast_result_block(result, block: "Block", how: str) -> "Block": | |||
agg_block: Block = block.make_block(result) | |||
return agg_block | |||
|
|||
for block in data.blocks: | |||
# Avoid inheriting result from earlier in the loop | |||
def blk_func(block): |
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.
can you type this
pandas/core/groupby/generic.py
Outdated
new_blocks = [agg_block] | ||
return new_blocks | ||
|
||
skipped = [] |
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.
can you type this
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.
done
pandas/core/groupby/generic.py
Outdated
@@ -1107,21 +1103,35 @@ def cast_result_block(result, block: "Block", how: str) -> "Block": | |||
# is a lie. To keep the code-path for the typical non-split case | |||
# clean, we choose to clean up this mess later on. | |||
assert len(locs) == result.shape[1] | |||
new_blocks = [] |
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.
can you type this
pandas/core/groupby/generic.py
Outdated
@@ -1107,21 +1103,35 @@ def cast_result_block(result, block: "Block", how: str) -> "Block": | |||
# is a lie. To keep the code-path for the typical non-split case | |||
# clean, we choose to clean up this mess later on. | |||
assert len(locs) == result.shape[1] | |||
new_blocks = [] |
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.
and move this to a higher scope (as used in both parts)
thanks |
Follows #35535
This isn't yet identical to apply_blockwise, because both this and apply_blockwise have some odd behaviors that need to get standardized before they get combined into a BlockManager method, but this is a move in that direction.