Spec-Zone.ru › pandas 1

pandas.Series.shift

Series.shift(periods=1, freq=None, axis=0, fill_value=None)[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:объект, необязательно

Скалярное значение, используемое для новых пропущенных значений. Значение по умолчанию зависит от типа данных self. Для числовых данных используется np.nan. Для datetime, timedelta или period данных и т. д. используется NaT. Для расширенных типов данных используется self.dtype.na_value.

Изменено в версии 1.1.0.

Возвращает
Series

Копия входного объекта, смещённая.

См. также

Index.shift

Смещение значений индекса.

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.Series.shift.html

Spec-Zone.ru

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