Python 按列索引获取值,其中行是特定值
我有一个数据框架表\u概述: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。 如果我不想讨论列名,我必须使用索引。我的问题
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-这取决于数据以及匹配数据在列中的位置。