Python 比较三列以确定预测

Python 比较三列以确定预测,python,pandas,numpy,Python,Pandas,Numpy,我试图创建一个函数来比较pandas dataframe中的三列(Versicolor、Virginica、Virginica),从而将值设置为第四列 基本上我有两个连续的二进制分类 首先,我需要比较花色和维吉尼亚。如果Versicolor为“1”,则将预测行设置为“Versicolor”。否则,如果Versicolor为0,则检查Virginica是“1”还是“0”。如果Virginica为“1”,则将预测行设置为“Virginica”,否则将预测行设置为“setosa” Versicolor

我试图创建一个函数来比较pandas dataframe中的三列(Versicolor、Virginica、Virginica),从而将值设置为第四列

基本上我有两个连续的二进制分类

首先,我需要比较花色和维吉尼亚。如果Versicolor为“1”,则将预测行设置为“Versicolor”。否则,如果Versicolor为0,则检查Virginica是“1”还是“0”。如果Virginica为“1”,则将预测行设置为“Virginica”,否则将预测行设置为“setosa”

Versicolor: [0 0 0 1 0 1 0] 
Virginica:  [1 0 0 0 1 1 1] 
Setosa:     [0 1 1 0 0 0 1]

Predictions: [virginica, setosa, setosa, versicolor, virginica, versicolor, virginica]
我认为需要:

对于新列:

df['new'] = df.idxmax(axis=1)
Numpy解决方案:

df['new'] = df.columns[df.values.argmax(axis=1)]

是否需要
df.idxmax(轴=1)
?如果all
0
,会发生什么情况?让我们假设all在这种情况下不可能等于零。#如果我的答案有用,请不要忘记-单击复选标记(
),将其从灰显切换为填充。谢谢
df['new'] = df.columns[df.values.argmax(axis=1)]