REF: Manager.fast_xs to return SingleBlockManager instead of array #47077
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.
This is something that I encountered in #46958, but again something that can be broken off / potentially useful anyway.
Currently the
fast_xs
method returns an array, but the only two places where it is being used (xs
/_ixs
), this array is directly wrapped in a Series. So by lettingfast_xs
return a manager instead, this gives a slight simplification / faster series construction.The reason that it is also useful for #46958 is because the CoW is handled at the manager level, so when creating a subset of a DataFrame (here in
xs
), ideally that is done by creating a subset manager (with proper references if needed) instead of going through raw arrays (as how it is done for example when accessing a column as a Series).