问题描述
我正在尝试将下面的输入数据框转换为输出数据框
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个模型准确性结果,我想为每个客户选择具有其准确性的最佳模型。最佳模型将意味着该客户具有最高准确性的模型。
我能够做到每个人的关键,但始终坚持为每个客户逻辑寻找最佳准确性
解决方法
您可以使用idxmax
和lookup
:
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