pandas.DataFrame.shift
- DataFrame.shift(periods=1, freq=None, axis=0, fill_value=_NoDefault.no_default)[source]
-
Смещение индекса на необходимое количество периодов с необязательной временной частотой freq.
Когда freq не передан, индекс смещается без перевыравнивания данных. Если freq передан (в этом случае индекс должен быть датой или датой и временем, иначе будет поднято исключение NotImplementedError), индекс будет увеличен с использованием периодов и freq. freq может быть определен, когда он указан как «infer», если в индексе задано либо свойство freq, либо inferred_freq.
- Параметры
-
- periods:int
-
Количество периодов смещения. Может быть положительным или отрицательным.
- freq:DateOffset, tseries.offsets, timedelta, или str, необязательно
-
Смещение, используемое из модуля tseries, или временной правила (например, ‘EOM’). Если freq задан, значения индекса смещаются, но данные не перевыравниваются. То есть, используйте freq, если вы хотите расширить индекс при смещении и сохранить исходные данные. Если freq указан как «infer», он будет определён из свойств freq или inferred_freq индекса. Если ни одно из этих свойств не существует, генерируется исключение ValueError.
- axis:{0 или ‘index’, 1 или ‘columns’, None}, по умолчанию None
-
Направление смещения. Для Series этот параметр не используется и по умолчанию равен 0.
- fill_value:object, необязательно
-
Скалярное значение, используемое для новых пропущенных значений. Значение по умолчанию зависит от типа данных self. Для числовых данных используется
np.nan. Для данных типа datetime, timedelta или period и т.д. используетсяNaT. Для расширенных типов данных используетсяself.dtype.na_value.Изменено в версии 1.1.0.
- Возвращает
-
- DataFrame
-
Копия входного объекта, смещённая.
См. также
Index.shift-
Смещение значений Index.
DatetimeIndex.shift-
Смещение значений DatetimeIndex.
PeriodIndex.shift-
Смещение значений PeriodIndex.
tshift-
Смещение временного индекса, используя частоту индекса, если она доступна.
Примеры
>>> df = pd.DataFrame({"Col1": [10, 20, 15, 30, 45], ... "Col2": [13, 23, 18, 33, 48], ... "Col3": [17, 27, 22, 37, 52]}, ... index=pd.date_range("2020-01-01", "2020-01-05")) >>> df Col1 Col2 Col3 2020-01-01 10 13 17 2020-01-02 20 23 27 2020-01-03 15 18 22 2020-01-04 30 33 37 2020-01-05 45 48 52>>> df.shift(periods=3) Col1 Col2 Col3 2020-01-01 NaN NaN NaN 2020-01-02 NaN NaN NaN 2020-01-03 NaN NaN NaN 2020-01-04 10.0 13.0 17.0 2020-01-05 20.0 23.0 27.0>>> df.shift(periods=1, axis="columns") Col1 Col2 Col3 2020-01-01 NaN 10 13 2020-01-02 NaN 20 23 2020-01-03 NaN 15 18 2020-01-04 NaN 30 33 2020-01-05 NaN 45 48>>> df.shift(periods=3, fill_value=0) Col1 Col2 Col3 2020-01-01 0 0 0 2020-01-02 0 0 0 2020-01-03 0 0 0 2020-01-04 10 13 17 2020-01-05 20 23 27>>> df.shift(periods=3, freq="D") Col1 Col2 Col3 2020-01-04 10 13 17 2020-01-05 20 23 27 2020-01-06 15 18 22 2020-01-07 30 33 37 2020-01-08 45 48 52>>> df.shift(periods=3, freq="infer") Col1 Col2 Col3 2020-01-04 10 13 17 2020-01-05 20 23 27 2020-01-06 15 18 22 2020-01-07 30 33 37 2020-01-08 45 48 52
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.DataFrame.shift.html