Spec-Zone.ru › pandas 1

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API