【发布时间】:2018-08-01 08:07:50
【问题描述】:
任务:在多列数据框中搜索一个值(所有值都是唯一的)并返回该行的索引。
目前: 使用 get_loc,但似乎一次只允许传递一个列,导致一组非常无效的 try except 语句。虽然它有效,但有人知道更有效的方法吗?
df = pd.DataFrame(np.random.randint(0,100,size=(4, 4)), columns=list('ABCD'))
try:
unique_index = pd.Index(df['A'])
print(unique_index.get_loc(20))
except KeyError:
try:
unique_index = pd.Index(df['B'])
print(unique_index.get_loc(20))
except KeyError:
unique_index = pd.Index(df['C'])
print(unique_index.get_loc(20))
循环似乎不起作用,因为如果列不包含值,则会引发 KeyError。我查看了诸如 .contains 或 .isin 之类的函数,但它是我感兴趣的位置索引。
【问题讨论】:
-
在此示例中,您是否在整个数据框中寻找值 20?
-
是的,但是因为它是 np.random.randint,所以值可以是任何值。只是我正在使用的一个例子