pandas.DataFrame.pct_change#

DataFrame.pct_change(periods=1, fill_method=, limit=, freq=None, **kwargs)[источник]#

Дробное изменение между текущим и предыдущим элементом.

Вычисляет дробное изменение по сравнению с непосредственно предыдущей строкой по умолчанию. Это полезно для сравнения доли изменения в временном ряде элементов.

Примечание

Несмотря на название этого метода, он вычисляет дробное изменение (также известное как изменение на единицу или относительное изменение), а не процентное изменение. Если вам нужно процентное изменение, умножьте эти значения на 100.

Параметры:
periodsint, по умолчанию 1

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

fill_method{'backfill', 'bfill', 'pad', 'ffill', None}, по умолчанию 'pad'

Как обрабатывать NA до вычисление процентных изменений.

Устарело с версии 2.1: Все опции fill_method устарели, за исключением fill_method=None.

limitint, по умолчанию None

Количество последовательных NA для заполнения перед остановкой.

Устарело с версии 2.1.

freqDateOffset, timedelta или str, опционально

Инкремент для использования из API временных рядов (например, 'ME' или BDay()).

**kwargs

Дополнительные ключевые аргументы передаются в DataFrame.shift или Series.shift.

Возвращает:
Series или DataFrame

Тот же тип, что и у вызывающего объекта.

Смотрите также

Series.diff

Вычислить разность двух элементов в Series.

DataFrame.diff

Вычисляет разность двух элементов в DataFrame.

Series.shift

Сдвигает индекс на некоторое количество периодов.

DataFrame.shift

Сдвигает индекс на некоторое количество периодов.

Примеры

Series

>>> s = pd.Series([90, 91, 85])
>>> s
0    90
1    91
2    85
dtype: int64
>>> s.pct_change()
0         NaN
1    0.011111
2   -0.065934
dtype: float64
>>> s.pct_change(periods=2)
0         NaN
1         NaN
2   -0.055556
dtype: float64

См. процентное изменение в Series, где NA заполняются последним валидным наблюдением вперед до следующего валидного.

>>> s = pd.Series([90, 91, None, 85])
>>> s
0    90.0
1    91.0
2     NaN
3    85.0
dtype: float64
>>> s.ffill().pct_change()
0         NaN
1    0.011111
2    0.000000
3   -0.065934
dtype: float64

DataFrame

Процентное изменение французского франка, немецкой марки и итальянской лиры с 1980-01-01 по 1980-03-01.

>>> df = pd.DataFrame({
...     'FR': [4.0405, 4.0963, 4.3149],
...     'GR': [1.7246, 1.7482, 1.8519],
...     'IT': [804.74, 810.01, 860.13]},
...     index=['1980-01-01', '1980-02-01', '1980-03-01'])
>>> df
                FR      GR      IT
1980-01-01  4.0405  1.7246  804.74
1980-02-01  4.0963  1.7482  810.01
1980-03-01  4.3149  1.8519  860.13
>>> df.pct_change()
                  FR        GR        IT
1980-01-01       NaN       NaN       NaN
1980-02-01  0.013810  0.013684  0.006549
1980-03-01  0.053365  0.059318  0.061876

Процент изменения объема акций GOOG и APPL. Показывает вычисление процентного изменения между столбцами.

>>> df = pd.DataFrame({
...     '2016': [1769950, 30586265],
...     '2015': [1500923, 40912316],
...     '2014': [1371819, 41403351]},
...     index=['GOOG', 'APPL'])
>>> df
          2016      2015      2014
GOOG   1769950   1500923   1371819
APPL  30586265  40912316  41403351
>>> df.pct_change(axis='columns', periods=-1)
          2016      2015  2014
GOOG  0.179241  0.094112   NaN
APPL -0.252395 -0.011860   NaN