Рассчитать процентное увеличение или уменьшение на основе значения предыдущего столбца той же строки в панде dataframe - PullRequest
0 голосов
/ 07 мая 2019

Мой фрейм данных содержит 20 столбцов и несколько строк. Я хочу рассчитать процентное увеличение или уменьшение на основе предыдущего значения столбца, но той же строки. если предыдущее значение недоступно (в первом столбце), я хочу 100 в этом месте.

Я попробовал метод shift (-1) для панд, но он не работает.

Dataframe:

A   B   C   D   E   F
10  20  25  50  150 100
100 130 195 150 250 250

Ожидаемый:

A    B    C   D    E    F
100  100  25  100  200  -33
100  30   50  -23   66   0

1 Ответ

1 голос
/ 07 мая 2019

Полагаю, вы можете использовать shift(axis=1):

(df.diff(axis=1)/df.shift(axis=1) * 100 ).fillna(100).astype(int)

но я думаю, что легче сделать это при транспонировании.

tmp_df = df.T
tmp_df = tmp_df.diff()/tmp_df.shift() * 100
tmp_df.fillna(100).astype(int).T

Выход:

+----+------+------+-----+------+------+-----+
|    |  A   |  B   | C   |  D   |  E   |  F  |
+----+------+------+-----+------+------+-----+
| 0  | 100  | 100  | 25  | 100  | 200  | -33 |
| 1  | 100  |  30  | 50  | -23  |  66  |   0 |
+----+------+------+-----+------+------+-----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...