如何在数据框中查找特定值和 return 索引?

How to look for specific values and return an index in a dataframe?

我有一个如下所示的 DataFrame:

Index      X            Y           Z           a           b           c        u    v
0      -1.462916    -1.299055   3.015321    -0.727074   2.697548    0.822541    259 -106
1      -1.397448    -1.267354   2.935434    -0.636784   2.755215    0.836514    273 -108
2      -1.384987    -1.269575   2.937742    -0.638735   2.767929    0.836798    279 -108
3      -1.367630    -1.281251   2.959687    -0.661788   2.787479    0.834445    293 -109
4      -1.349895    -1.278706   2.951603    -0.651958   2.804420    0.836097    300 -110
... ... ... ... ... ... ... ... ...
33817   0.744647    0.701664    1.618279    1.717619    4.655669    -0.186012   1655    1169
33818   0.723408    0.674251    1.556330    1.753335    4.632607    -0.129156   1662    1168
33819   0.752354    0.693699    1.602645    1.727306    4.662931    -0.171157   1669    1168
33820   0.681987    0.622136    1.438694    1.821023    4.587733    -0.021106   1675    1167
33821   0.765870    0.691312    1.600311    1.729280    4.676410    -0.168285   1682    1166

所以我有一对 u 和 v 值(最后两列)。所以我想问的是,如果例如我有一个值 u = 279 和一个值 v = -108,我的输出将是 Index = 2,有没有办法做到这一点?

我尝试执行下面的代码,但它只查找一列。

v_location = a.loc[a['v'] == -108].index[1]
v_location

[output] = 2

如您所见,此方法仅在一列(例如v列)内查找值,并且可能会给出错误的索引值,如您所见,index=1和index=2都是v == -108 .

简单地说,我希望我的输入是成对的 u 列和 v 列的值,并给出一个索引值作为输出。

尝试数据帧中的 isin() 函数。 df.isin([-100])

您可以像这样在表达式中使用多个条件 df['u'].eq(279) & df['v'].eq(-108)

print(a[a['u'].eq(279) & a['v'].eq(-108)].index[0])

打印:

2