在 df 中查找值
Looking up a value in df
我的目标是在 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']
但这给了我两个问题:
它没有 return 单个值,如果该值不存在,也不会给我 0
。
使用 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
我的目标是在 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']
但这给了我两个问题:
它没有 return 单个值,如果该值不存在,也不会给我 0
。
使用 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