BUG: Improve DST handling in resample by merging timezone fallback logic and add comprehensive DST test suite #63043
+309
−34
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 PR improves the robustness of DST handling in resample operations involving timezone-aware DatetimeIndex, especially for timezones that contain DST gaps such as Africa/Cairo. #62601
What this PR does
During resampling, pandas internally constructs bin edges using date_range.
For certain DST transitions (e.g., Africa/Cairo 2024-04-26), these generated edges may fall into nonexistent local times, producing NonExistentTimeError even when user data does not include such timestamps.
This PR resolves this by:
A new file pandas/tests/resample/test_dst_handling.py is added.
It includes:
These tests are API-driven and avoid relying on internal implementation.
No performance tests are added to pytest; those belong to asv.