Если условие ELSE основано на максимальном значении столбца в Python 3 (блокнот Jupyter) - PullRequest
1 голос
/ 22 апреля 2020
import pandas as pd

df2 = pd.DataFrame(data=acc, 
                   columns=['Accuracy'], 
                   index=['DT','RF','KNN','NN','REG'])
df2 = df2.T

Цель: найти, какой столбец имеет максимальное значение и выполнить задачи соответственно

              DT           RF         KNN         NN         REG
Accuracy    98.882173   99.037636   78.016063   77.240633   54.059435

Например: в приведенном выше примере «RF» имеет максимальное значение. Информация о системе:

  • Python 3
  • Блокнот Jupyter.

Псевдокод:

max = Column name of maximum value    ('RF' in this case)

if (max=='RF'):
 ..xyx..
else if (max=='DT'):
 .. abcd...
etc...

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Максимальное имя столбца можно найти по каждой строке, используя DataFrame.idxmax

>>> df
                 DT         RF        KNN         NN        REG
Accuracy  98.882173  99.037636  78.016063  77.240633  54.059435

>>> df.idxmax(axis=1)
Accuracy    RF
dtype: object
0 голосов
/ 22 апреля 2020

Вы можете использовать idxmax в оригинальном кадре данных без транспонирования. Например:

>>> df2 = pd.DataFrame(acc, columns = ['Accuracy'], index = ['DT','RF','KNN','NN','REG'])
>>> df2['Accuracy'].idxmax()

Вывод:

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