Skip to content

Commit f8f9961

Browse files
authored
DEPR: enforce deprecation of slice_shift (#49271)
1 parent 5c51bc1 commit f8f9961

File tree

6 files changed

+1
-63
lines changed

6 files changed

+1
-63
lines changed

doc/redirects.csv

-2
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,6 @@ generated/pandas.DataFrame.shape,../reference/api/pandas.DataFrame.shape
484484
generated/pandas.DataFrame.shift,../reference/api/pandas.DataFrame.shift
485485
generated/pandas.DataFrame.size,../reference/api/pandas.DataFrame.size
486486
generated/pandas.DataFrame.skew,../reference/api/pandas.DataFrame.skew
487-
generated/pandas.DataFrame.slice_shift,../reference/api/pandas.DataFrame.slice_shift
488487
generated/pandas.DataFrame.sort_index,../reference/api/pandas.DataFrame.sort_index
489488
generated/pandas.DataFrame.sort_values,../reference/api/pandas.DataFrame.sort_values
490489
generated/pandas.DataFrame.squeeze,../reference/api/pandas.DataFrame.squeeze
@@ -1166,7 +1165,6 @@ generated/pandas.Series.shape,../reference/api/pandas.Series.shape
11661165
generated/pandas.Series.shift,../reference/api/pandas.Series.shift
11671166
generated/pandas.Series.size,../reference/api/pandas.Series.size
11681167
generated/pandas.Series.skew,../reference/api/pandas.Series.skew
1169-
generated/pandas.Series.slice_shift,../reference/api/pandas.Series.slice_shift
11701168
generated/pandas.Series.sort_index,../reference/api/pandas.Series.sort_index
11711169
generated/pandas.Series.sort_values,../reference/api/pandas.Series.sort_values
11721170
generated/pandas.Series.sparse.density,../reference/api/pandas.Series.sparse.density

doc/source/reference/frame.rst

-1
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,6 @@ Time Series-related
266266
DataFrame.asfreq
267267
DataFrame.asof
268268
DataFrame.shift
269-
DataFrame.slice_shift
270269
DataFrame.first_valid_index
271270
DataFrame.last_valid_index
272271
DataFrame.resample

doc/source/reference/series.rst

-1
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,6 @@ Time Series-related
268268
Series.tz_localize
269269
Series.at_time
270270
Series.between_time
271-
Series.slice_shift
272271

273272
Accessors
274273
---------

doc/source/whatsnew/v2.0.0.rst

+1
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ Removal of prior version deprecations/changes
192192
- Removed the ``numeric_only`` keyword from :meth:`Categorical.min` and :meth:`Categorical.max` in favor of ``skipna`` (:issue:`48821`)
193193
- Removed :func:`is_extension_type` in favor of :func:`is_extension_array_dtype` (:issue:`29457`)
194194
- Removed :meth:`Index.get_value` and :meth:`Index.set_value` (:issue:`33907`, :issue:`28621`)
195+
- Removed :meth:`Series.slice_shift` and :meth:`DataFrame.slice_shift` (:issue:`37601`)
195196
- Remove :meth:`DataFrameGroupBy.pad` and :meth:`DataFrameGroupBy.backfill` (:issue:`45076`)
196197
- Remove ``numpy`` argument from :func:`read_json` (:issue:`30636`)
197198
- Removed the ``center`` keyword in :meth:`DataFrame.expanding` (:issue:`20647`)

pandas/core/generic.py

-51
Original file line numberDiff line numberDiff line change
@@ -10219,57 +10219,6 @@ def shift(
1021910219
result = self.set_axis(new_ax, axis=axis)
1022010220
return result.__finalize__(self, method="shift")
1022110221

10222-
@final
10223-
def slice_shift(self: NDFrameT, periods: int = 1, axis: Axis = 0) -> NDFrameT:
10224-
"""
10225-
Equivalent to `shift` without copying data.
10226-
10227-
.. deprecated:: 1.2.0
10228-
slice_shift is deprecated,
10229-
use DataFrame/Series.shift instead.
10230-
10231-
The shifted data will not include the dropped periods and the
10232-
shifted axis will be smaller than the original.
10233-
10234-
Parameters
10235-
----------
10236-
periods : int
10237-
Number of periods to move, can be positive or negative.
10238-
axis : {0 or 'index', 1 or 'columns', None}, default 0
10239-
For `Series` this parameter is unused and defaults to 0.
10240-
10241-
Returns
10242-
-------
10243-
shifted : same type as caller
10244-
10245-
Notes
10246-
-----
10247-
While the `slice_shift` is faster than `shift`, you may pay for it
10248-
later during alignment.
10249-
"""
10250-
10251-
msg = (
10252-
"The 'slice_shift' method is deprecated "
10253-
"and will be removed in a future version. "
10254-
"You can use DataFrame/Series.shift instead."
10255-
)
10256-
warnings.warn(msg, FutureWarning, stacklevel=find_stack_level())
10257-
10258-
if periods == 0:
10259-
return self
10260-
10261-
if periods > 0:
10262-
vslicer = slice(None, -periods)
10263-
islicer = slice(periods, None)
10264-
else:
10265-
vslicer = slice(-periods, None)
10266-
islicer = slice(None, periods)
10267-
10268-
new_obj = self._slice(vslicer, axis=axis)
10269-
shifted_axis = self._get_axis(axis)[islicer]
10270-
new_obj = new_obj.set_axis(shifted_axis, axis=axis, copy=False)
10271-
return new_obj.__finalize__(self, method="slice_shift")
10272-
1027310222
def truncate(
1027410223
self: NDFrameT,
1027510224
before=None,

pandas/tests/generic/test_generic.py

-8
Original file line numberDiff line numberDiff line change
@@ -462,11 +462,3 @@ def test_flags_identity(self, frame_or_series):
462462
assert obj.flags is obj.flags
463463
obj2 = obj.copy()
464464
assert obj2.flags is not obj.flags
465-
466-
def test_slice_shift_deprecated(self, frame_or_series):
467-
# GH 37601
468-
obj = DataFrame({"A": [1, 2, 3, 4]})
469-
obj = tm.get_obj(obj, frame_or_series)
470-
471-
with tm.assert_produces_warning(FutureWarning):
472-
obj.slice_shift()

0 commit comments

Comments
 (0)