Рассчитайте процентное изменение между двумя конкретными рядами с пандами - PullRequest
1 голос
/ 08 июля 2019

У меня есть такой фрейм данных:

         AAPL      MSFT
May       200       120
Jun       190       122
Jul       170       127
Aug       180       135

Я хочу добавить новую строку с индексным именем 'percChane', которая вычисляет изменение perc между первой и последней строкой (в этом примере май и август).

             AAPL      MSFT
    May       200       120
    Jun       190       122
    Jul       170       127
    Aug       180       135
   percChng   -10      12.5

Можно ли это сделать с помощью df.pct_change ()? Если нет, то какой самый эффективный способ сделать это - это всегда должен быть первый и последний ряд.

1 Ответ

3 голосов
/ 08 июля 2019

Вы можете выбрать строки, для которых вы хотите рассчитать изменение%, а затем рассчитать их самостоятельно:

s, e = df.iloc[0], df.iloc[-1]
df = df.append(((e - s) / s * 100).rename('percChng'))
df
           AAPL   MSFT
May       200.0  120.0
Jun       190.0  122.0
Jul       170.0  127.0
Aug       180.0  135.0
percChng  -10.0   12.5

Кроме того, вы можете позвонить pct_change, чтобы панды сделали это для вас:

df = df.append(df.iloc[[0, -1]].pct_change().iloc[-1].mul(100).rename('percChng'))
df
           AAPL   MSFT
May       200.0  120.0
Jun       190.0  122.0
Jul       170.0  127.0
Aug       180.0  135.0
percChng  -10.0   12.5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...