pandas.Series.shift
- Series.shift(periods=1, freq=None, axis=0, fill_value=_NoDefault.no_default, suffix=None)[source]
-
Сдвиг индекса на нужное количество периодов с необязательной временной freq.
Когда freq не передаётся, индекс сдвигается без переустановки данных. Если freq передаётся (в этом случае индекс должен быть датой или датой и временем, в противном случае будет выброшено исключение NotImplementedError), индекс увеличивается с использованием periods и freq. freq может быть определён, когда задан как «infer» (вывод), при условии, что либо атрибут freq, либо атрибут inferred_freq установлен в индексе.
- Параметры:
-
- periods:int или Последовательность
-
Количество периодов сдвига. Может быть положительным или отрицательным. Если это итерируемый набор целых чисел, данные будут сдвигаться один раз для каждого целого числа. Это эквивалентно сдвигу на одно значение за раз и конкатенации всех полученных кадров. Результирующие столбцы будут иметь суффикс сдвига в их именах столбцов. Для нескольких периодов ось не должна быть 1.
- 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. - suffix:str, необязательно
-
Если str и periods является итерируемым набором, это добавляется после имени столбца и перед значением сдвига для каждого имени сдвинутого столбца.
- Возвращаемые значения:
-
- Series/DataFrame
-
Копия входного объекта, сдвинутого.
См. также
Index.shift-
Сдвиг значений Index.
DatetimeIndex.shift-
Сдвиг значений DatetimeIndex.
PeriodIndex.shift-
Сдвиг значений PeriodIndex.
Примеры
>>> 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>>> df['Col1'].shift(periods=[0, 1, 2]) Col1_0 Col1_1 Col1_2 2020-01-01 10 NaN NaN 2020-01-02 20 10.0 NaN 2020-01-03 15 20.0 10.0 2020-01-04 30 15.0 20.0 2020-01-05 45 30.0 15.0
© 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/2.2.2/reference/api/pandas.Series.shift.html