Как получить победителя на пандах на основе алгоритма сортировки - PullRequest
0 голосов
/ 31 мая 2018

Вот мои данные

No   Candidate_A    Candidate_B   Candidate_C
1              8              9            12
2             18              9            12
3              9              9             7

Вот результат, который я хочу, логика: Candidate_A больше, чем Candidate_B, Candidate_B побед, если не Candidate_A, в основном это просто сортировкаалгоритм

No   Candidate_A    Candidate_B   Candidate_C     Result
1              8              9            12     Candidate_C     
2             18              9            12     Candidate_A
3              9              9             7     Candidate_A

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вы можете использовать функцию .idxmax, а затем добавить столбец:

import pandas as pd

candidates = pd.DataFrame({'Candidate_A': [8, 18, 9], 'Candidate_B': [9, 9, 9], 'Candidate_C': [12, 12, 7]}, index=[1, 2, 3])

candidates['Results'] = candidates.idxmax(axis=1)
print(candidates)

Вот ваш вывод:

           Candidate_A  Candidate_B  Candidate_C      Results
1            8            9           12             Candidate_C
2           18            9           12             Candidate_A
3            9            9            7             Candidate_A

Как вы знаете, вы можете добавить дополнительный столбец с помощьюиспользуя скобки ['Results'], и мы просто установим его равным max в каждой строке с помощью функции idxmax.Не забудьте установить ось на 1, если мы получаем максимум на основе каждой строки данных вместо каждого столбца данных.

0 голосов
/ 31 мая 2018

Использование DataFrame.iloc с DataFrame.idxmax:

df['Res'] = df.iloc[:, 1:].idxmax(axis=1)
#if first column is index
#df['Res'] = df.idxmax(axis=1)
print (df)
   No  Candidate_A  Candidate_B  Candidate_C          Res
0   1            8            9           12  Candidate_C
1   2           18            9           12  Candidate_A
2   3            9            9            7  Candidate_A
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...