Spec-Zone.ru › pandas 0.24

pandas.DataFrame.shift

DataFrame.shift(periods=1, freq=None, axis=0, fill_value=None) [source]

Сдвиг индекса на нужное количество периодов с необязательным временным freq.

Когда freq не передан, индекс сдвигается без перевыравнивания данных. Если freq передан (в этом случае индекс должен быть датой или датой и временем, иначе будет выброшено исключение NotImplementedError), индекс будет увеличен с использованием периодов и freq.

Параметры:
periods : int

Количество периодов для сдвига. Может быть положительным или отрицательным.

freq : DateOffset, tseries.offsets, timedelta, or str, optional

Смещение для использования из модуля tseries или временного правила (например, ‘EOM’). Если freq указан, значения индекса сдвигаются, но данные не перевыравниваются. То есть используйте freq, если вы хотите расширить индекс при сдвиге и сохранить исходные данные.

axis : {0 or ‘index’, 1 or ‘columns’, None}, default None

Направление сдвига.

fill_value : object, optional

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

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

Возвращает:
DataFrame

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

См. также

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]})
>>> df.shift(periods=3)
   Col1  Col2  Col3
0   NaN   NaN   NaN
1   NaN   NaN   NaN
2   NaN   NaN   NaN
3  10.0  13.0  17.0
4  20.0  23.0  27.0
>>> df.shift(periods=1, axis='columns')
   Col1  Col2  Col3
0   NaN  10.0  13.0
1   NaN  20.0  23.0
2   NaN  15.0  18.0
3   NaN  30.0  33.0
4   NaN  45.0  48.0
>>> df.shift(periods=3, fill_value=0)
   Col1  Col2  Col3
0     0     0     0
1     0     0     0
2     0     0     0
3    10    13    17
4    20    23    27

© 2008–2012, 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/0.24.2/reference/api/pandas.DataFrame.shift.html

Spec-Zone.ru

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