Python数据框处理

问题描述

我正在尝试将下面的输入数据框转换为输出数据框

import pandas as pd

data = {'Model1': [86,23,32,13,45,12],'Model2': [96,98,34,12,22,19],'Model3': [56,44,33]
       }

Input = pd.DataFrame(data,columns=['Model1','Model2','Model3'],index=['I1','I2','I3','I4','I5','I6'])

Output = pd.DataFrame(data={'Best Model': ['Model2','Model3','Model1','Best Model Accuracy': [96,33]},columns=['Best Model','Best Model Accuracy'],'I6'])

逻辑:我有6个客户的3个模型准确性结果,我想为每个客户选择具有其准确性的最佳模型。最佳模型将意味着该客户具有最高准确性的模型。

我能够做到每个人的关键,但始终坚持为每个客户逻辑寻找最佳准确性

解决方法

您可以使用idxmaxlookup

idx = Input.idxmax(1)
output = pd.DataFrame({'Best Model':idx,'Best Acc':Input.lookup(Input.index,idx)
                     })

输出:

   Best Model  Best Acc
I1     Model2        96
I2     Model2        98
I3     Model3        44
I4     Model1        13
I5     Model1        45
I6     Model3        33