-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
API/DEPR: 'periods' argument instead of 'n' for DatetimeIndex.shift() #22697
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
Changes from 10 commits
3e3c5a0
39141c0
1df9a9f
5b592f6
f684245
240aa7e
11169fa
6f627ac
d0d8b83
ff335a5
de54cce
d9bbfe8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8298,6 +8298,11 @@ def mask(self, cond, other=np.nan, inplace=False, axis=None, level=None, | |
See Notes. | ||
axis : %(axes_single_arg)s | ||
|
||
See Also | ||
-------- | ||
Index.shift : Shift values of Index. | ||
DatetimeIndex.shift : Shift values of DatetimeIndex. | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @jreback I also added |
||
Notes | ||
----- | ||
If freq is specified then the index values are shifted but the data | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -540,6 +540,16 @@ def test_shift(self): | |
shifted = rng.shift(1, freq=CDay()) | ||
assert shifted[0] == rng[0] + CDay() | ||
|
||
def test_shift_periods(self): | ||
# GH #22458 : argument 'n' was deprecated in favor of 'periods' | ||
idx = pd.DatetimeIndex(start=START, end=END, | ||
periods=3) | ||
tm.assert_index_equal(idx.shift(periods=0), idx) | ||
tm.assert_index_equal(idx.shift(0), idx) | ||
with tm.assert_produces_warning(FutureWarning, | ||
check_stacklevel=False): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could you change this to true? If the test fails, you may need to increase the stacklevel 1. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @TomAugspurger done, test passed too. |
||
tm.assert_index_equal(idx.shift(n=0), idx) | ||
|
||
def test_pickle_unpickle(self): | ||
unpickled = tm.round_trip_pickle(self.rng) | ||
assert unpickled.freq is not None | ||
|
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'll need to deprecate periods. Your change would break people doing
.shift(n=1)
.This could be somewhat tricky to do... I think you may have to make the signature
*args, **kwargs
, and manually do the parsingshift(1)
: no warningshift(n=1)
: warningshift(periods=1)
: no warninglmk if you need help.
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.
@TomAugspurger Thanks. I started parsing manually but couldn't make some tests pass. Then I realized there is a decorator in
pandas/pandas/util/_decorators.py
that I could use for deprecatingn
. Lmk if there is anything else to be done.