我的目标是查找df中的值。例如,df:
Name Item Val1 Val2
x i 1 4
x j 2 5
y i 3 6
y j 0 6
设a为 Val1 的值,其中Name = x
和Item = j
然后是a = 2
。
设b为 Val2 的值,其中Name = z
和Item = j
然后是b = 0
,如果它不存在的话。
任何帮助将不胜感激。 :)
我尝试将Name和Item设置为索引,然后使用df.loc[('x', 'j'), 'Val1']
,但这会给我带来两个问题:
它不返回单个值,如果该值不存在,则不会给我0
。
答案 0 :(得分:1)
使用try...except
#df = df.set_index(['Name', 'Item'])
def yourlookup(Name, Item, Var):
try :
return df.loc[(Name, Item), Var]
except:
return 0
yourlookup('x', 'i', 'Val1') # 1
yourlookup('x', 'z', 'Val1') # 0