在df中查找值

时间:2018-01-29 17:22:36

标签: python pandas lookup

我的目标是查找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 = xItem = j然后是a = 2

设b为 Val2 的值,其中Name = zItem = j然后是b = 0,如果它不存在的话。

任何帮助将不胜感激。 :)

我尝试将Name和Item设置为索引,然后使用df.loc[('x', 'j'), 'Val1'],但这会给我带来两个问题: 它不返回单个值,如果该值不存在,则不会给我0

1 个答案:

答案 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