Spec-Zone.ru › pandas 2

pandas.DataFrame.shift

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

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

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

Параметры:
periods:int или Последовательность

Количество периодов для сдвига. Может быть положительным или отрицательным. Если итерируемый список целых чисел, данные будут сдвигаться один раз на каждое целое число. Это эквивалентно сдвигу на одно значение за раз и конкатенации всех полученных фреймов. Результирующие столбцы будут иметь суффикс, добавленный к их именам столбцов. Для нескольких периодов ось не может быть равна 1.

freq:DateOffset, tseries.offsets, timedelta или строка, необязательно

Смещение, используемое из модуля 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:строка, необязательно

Если строка, а periods — итерируемый список, это добавляется к имени столбца после имени столбца и перед значением сдвига для каждого имени сдвинутого столбца.

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

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

См. также

Index.shift

Сдвиг значений индекса.

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

Spec-Zone.ru

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