Spec-Zone.ru › pandas 2

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

Spec-Zone.ru

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