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