В Python: как извлечь максимальное значение в третьем столбце и вернуть значение в четвертом столбце? - PullRequest
0 голосов
/ 03 января 2019

У меня есть такие данные:

    0 1 251 TrCP
    0 2 68 TrCP
    0 3 61 TrCP
    0 4 69 TrCP
    0 5 70 TrCP
    0 6 75 TrCP
    0 7 63 TrCP
    0 8 57 TrCP
    0 9 96 TrCP
    0 10 266 TrCP
    ........
    0 2827 62 TrNAP
    1 1 67 TrCP
    1 2 84 TrCP
    1 3 159 TrCP
    1 4 121 TrCP
    1 5 80 TrCP
    1 6 68 TrCP
    1 7 148 TrCP
    1 8 78 TrCP
    1 9 71 TrCP
    1 10 67 TrCP
    ........
    1 2827 76 TrNAP
    .
    .
    .
    2828 1 62 TrCP

В первом столбце у меня есть число от 0 до 2828. За каждый номер в 0-2828 Я хочу извлечь последний столбец (например, TrCP) в соответствии со значением в третьем столбце. Например, в первом столбце = '0', максимальное значение в третьем столбце равно '266', я хочу вернуть вывод: TrCP.

1 Ответ

0 голосов
/ 03 января 2019

Я не знаю, как хранятся ваши данные, но наиболее распространенное решение выглядит следующим образом:

my_array= [251, 68, 61, 69, 70, 75...]
whoa_a_wild_array = ['TrCP','TrCP','TrCP','TrCP',...]
whoa_a_wild_array[np.argmax(x)]

Здесь np.argmax() возвращает индекс максимального значения.Затем мы можем получить доступ к этому индексу в нашем другом массиве / vector / list / etc.Тадаа!

Если вы используете панд, код очень похож:

df['4th_column'].values[df['3rd_column'].argmax()]]

.values гарантирует, что вы на самом деле извлекаете нужный индекс, а не неправильно упорядоченную метку (т. Е. Если ваш фрейм данныхИндекс нумеруется, и вы не хотите к нему обращаться.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...