Python 比较三列以确定预测
我试图创建一个函数来比较pandas dataframe中的三列(Versicolor、Virginica、Virginica),从而将值设置为第四列 基本上我有两个连续的二进制分类 首先,我需要比较花色和维吉尼亚。如果Versicolor为“1”,则将预测行设置为“Versicolor”。否则,如果Versicolor为0,则检查Virginica是“1”还是“0”。如果Virginica为“1”,则将预测行设置为“Virginica”,否则将预测行设置为“setosa”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
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)
?如果all0
,会发生什么情况?让我们假设all在这种情况下不可能等于零。#如果我的答案有用,请不要忘记-单击复选标记(✓答案旁边的代码>),将其从灰显切换为填充。谢谢
df['new'] = df.columns[df.values.argmax(axis=1)]