Python 按列索引获取值,其中行是特定值

Python 按列索引获取值,其中行是特定值,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框架表\u概述: Unnamed: 0 Headline Unnamed: 2 Unnamed: 3 0 nan 1. 1. username Erik 1 nan 1. 2. userage 23 2 nan 1. 3. favorite ice 我想通过在第二列中查找“1.2.”来获得值23。 如果我不想讨论列名,我必须使用索引。我的问题

我有一个数据框架表\u概述:

    Unnamed: 0 Headline Unnamed: 2 Unnamed: 3
  0         nan    1. 1.   username       Erik
  1         nan    1. 2.    userage         23
  2         nan    1. 3.   favorite        ice
我想通过在第二列中查找“1.2.”来获得值23。 如果我不想讨论列名,我必须使用索引。我的问题是,如果我的方法太复杂。

它能起作用,但似乎太多,也不是很像蟒蛇:

age = sheet_overview.iloc[
                    sheet_overview[
                        sheet_overview.iloc[:, 1] == '1. 2.']
                        .index[0], 3]
为具有的筛选器添加numpy数组,然后使用
next
返回第一个匹配值-如果不存在,则获取
缺失的

a = sheet_overview.iloc[(sheet_overview.iloc[:, 1] == '1. 2.').values, 3]

a = next(iter(a), 'missing')
print (a)
23
如果性能很重要,请使用
numba

from numba import njit

@njit
def first_val(A, k):
    a = A[:, 0]
    b = A[:, 1]
    for i in range(len(a)):
        if a[i] == k:
            return b[i]
    return 'missing'

a = first_val(sheet_overview.iloc[:, [1,3]].values, '1. 2.')

已经有了错误补偿很好,但还有其他好处吗,比如节省内存或时间?@ErikSteiner-这取决于数据以及匹配数据在列中的位置。