如何在数据框中查找特定值和 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
我有一个如下所示的 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