Как рассчитать процентное изменение в Pandas


Вы можете использовать функцию pct_change() для расчета процентного изменения между значениями в pandas:

#calculate percent change between values in pandas Series
s. pct_change ()

#calculate percent change between rows in pandas DataFrame
df['column_name']. pct_change ()

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1: Процентное изменение в серии панд

В следующем коде показано, как рассчитать процентное изменение между значениями в серии pandas:

import pandas as pd

#create pandas Series
s = pd.Series([6, 14, 12, 18, 19])

#calculate percent change between consecutive values
s. pct_change () 

0 NaN
1 1.333333
2 -0.142857
3 0.500000
4 0.055556
dtype: float64

Вот как были рассчитаны эти значения:

  • Индекс 1: (14 – 6) / 6 = 1,333333
  • Индекс 2: (12 – 14) / 14 = -0,142857
  • Индекс 3: (18 – 12) / 12 = 0,5
  • Индекс 4: (19 – 18) / 18 = 0,055556

Обратите внимание, что вы также можете использовать аргумент Periods для расчета процентного изменения между значениями с разными интервалами:

import pandas as pd

#create pandas Series
s = pd.Series([6, 14, 12, 18, 19])

#calculate percent change between values 2 positions apart
s. pct_change (periods= 2 ) 

0 NaN
1 NaN
2 1.000000
3 0.285714
4 0.583333
dtype: float64

Вот как были рассчитаны эти значения:

  • Индекс 2: (12 – 6) / 6 = 1,000000
  • Индекс 3: (18 – 14) / 14 = 0,285714
  • Индекс 4: (19 – 12) / 12 = 0,583333

Пример 2: Процентное изменение в pandas DataFrame

В следующем коде показано, как рассчитать процентное изменение между последовательными строками в кадре данных pandas:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'period': [1, 2, 3, 4, 5],
 'sales': [6, 7, 7, 9, 12]}) 

#view DataFrame
df

 period sales
0 1 6
1 2 7
2 3 7
3 4 9
4 5 12

#calculate percent change between consecutive values in 'sales' column
df['sales_pct_change'] = df['sales']. pct_change ()

#view updated DataFrame
df

 period sales sales_pct_change
0 1 6 NaN
1 2 7 0.166667
2 3 7 0.000000
3 4 9 0.285714
4 5 12 0.333333

Вот как были рассчитаны эти значения:

  • Индекс 1: (7 – 6) / 6 = 0,166667
  • Индекс 2: (7 – 7) / 7 = 0,000000
  • Индекс 3: (9 – 7) / 7 = 0,285714
  • Индекс 4: (12 – 9) / 9 = 0,333333

Вы можете найти полную документацию по функции pct_change() здесь .

Дополнительные ресурсы

Как рассчитать среднее значение столбцов в Pandas
Как рассчитать медиану в Pandas
Как рассчитать скользящее среднее в Pandas
Как рассчитать скользящую корреляцию в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.