pandas.DataFrame.pct_change
- DataFrame.pct_change(periods=1, fill_method=_NoDefault.no_default, limit=_NoDefault.no_default, freq=None, **kwargs)[source]
-
Процентное изменение между текущим и предыдущим элементом.
Вычисляет процентное изменение от непосредственно предшествующей строки по умолчанию. Это полезно для сравнения процентного изменения во временном ряду элементов.
Примечание
Несмотря на название этого метода, он вычисляет относительное изменение (также известное как процентное изменение или относительное изменение), а не процентное изменение. Если вам нужно процентное изменение, умножьте эти значения на 100.
- Параметры:
-
- periods:int, по умолчанию 1
-
Периоды сдвига для формирования процентного изменения.
- fill_method:{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, по умолчанию ‘pad’
-
Как обрабатывать пропуски перед вычислением процентных изменений.
Устаревшее начиная с версии 2.1: Все варианты fill_method устарели, за исключением fill_method=None.
- limit:int, по умолчанию None
-
Количество последовательных пропусков, которые нужно заполнить перед остановкой.
Устарело начиная с версии 2.1.
- freq:DateOffset, 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, где пропуски заполняются последним допустимым наблюдением вперед до следующего допустимого.
>>> 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
© 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.pct_change.html