BUG: Preserve dtype for NA columns during DataFrame reindex#65159
Draft
jbrockmendel wants to merge 2 commits intopandas-dev:mainfrom
Draft
BUG: Preserve dtype for NA columns during DataFrame reindex#65159jbrockmendel wants to merge 2 commits intopandas-dev:mainfrom
jbrockmendel wants to merge 2 commits intopandas-dev:mainfrom
Conversation
…, GH#63288) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lock Use na_value_for_dtype to produce unit-aware NaT values and short-circuit the datetime/timedelta path to preserve exact resolution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
BlockManager._make_na_blockto use the interleaved dtype of existing blocks when creating NA columns during reindex, instead of always defaulting tofloat64NaTinstead ofNaN_slice_take_blocks_ax0placement split logic to use the same dtype inference, so 1D-only EA blocks are correctly split per-columnDataFrame.combineto catchTypeErroralongsideValueErrorwhen casting all-NA columnscloses #59529
closes #63288
Test plan
test_frame_sub_series_datetime_axis1— GH#59529 reproducertest_frame_with_frame_reindex_pyarrow_columns— GH#63288 reproducertest_frame_with_frame_reindex_nullable_int_columns— nullable Int64 varianttest_frame_with_frame_reindex_timedelta_columns— timedelta varianttest_frame_with_frame_reindexexpected output (NaT instead of NaN for non-overlapping datetime columns)🤖 Generated with Claude Code