提取列表,其值的位置由Pandas DataFrame中另一列中的值指示

时间:2017-10-27 15:34:09

标签: python pandas dataframe indexing

最终可能很明显,但我想不出办法做到这一点。谢谢你的帮助!

我做了一个预测任务,因此我有一个带有百分比的DataFrame和一个带有预测类的列,如下所示:

      Class1 Class2 Class3 Prediction
0     0.99   0.01   0.00   Class1
1     0.15   0.14   0.71   Class3
2     0.05   0.80   0.15   Class2

现在我想要访问预测班级的概率。所以我希望有一个如下所示的列表,以便我可以进一步使用它。

0 0.99
1 0.71
2 0.80

我一直无法找到一种方法只能访问df.Predicted的一个值,并且不知道如何搜索它。我如何获得此值或者我想要的列表?我试过这个:

values = []
for row in df.Predicted:
    values.append(row)
print(values)

但它返回每次迭代的整个列。它也没有像熊猫一样的感觉。我正在使用python 3.5,以防它有所作为

1 个答案:

答案 0 :(得分:1)

IIUC:

In [15]: df.lookup(df.index, df.Prediction)
Out[15]: array([ 0.99,  0.71,  0.8 ])

In [23]: df.max(axis=1)
Out[23]:
0    0.99
1    0.71
2    0.80
dtype: float64

In [24]: df.filter(regex='^Class').idxmax(axis=1)
Out[24]:
0    Class1
1    Class3
2    Class2
dtype: object