Разница между последующими столбцами в фрейме данных Python - PullRequest
0 голосов
/ 20 сентября 2019

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

input:

         2000 2001 2002 2003 2004
Michael   10   12   15   8    3
John      7    5    6    12   25  
Mitch     3    13   5    7    8
Jeff      1    0    11   6    9  
Ron       0    5    5    4    2 

Output

        2000  2001 2002 2003 2004
Michael        2    3    -7    -5
John          -2    1     6    13  
Mitch          10   -8    2    1

Спасибо за помощь

1 Ответ

0 голосов
/ 20 сентября 2019

Попробуй это.Однако, как пишет @Quang Hoang в комментариях, гораздо сложнее делать с df.diff(axis=1).Мне не пришло в голову, когда я писал этот ответ.

df.sub(df.shift(axis=1))

В этом коде мы в основном смещаем все столбцы на один шаг по оси = 1 (по вертикали) и вычитаем его из того, что на самом деле есть.df.diff(axis=1) - встроенная функция для этого.

Выход

2000    2001    2002    2003    2004
Michael     NaN     2.0     3.0     -7.0    -5.0
John    NaN     -2.0    1.0     6.0     13.0
Mitch   NaN     10.0    -8.0    2.0     1.0
Jeff    NaN     -1.0    11.0    -5.0    3.0
Ron     NaN     5.0     0.0     -1.0    -2.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...