我正在使用多个try / except块将一个数据帧(例如数据)的值分配给3个变量(例如b,c,d),如果位置索引器超出范围,我想处理 IndexErrors -界线。我目前正在做什么,如下所示:
b,c,d=None,None,None
try:
b=data.iloc[1,1]
except:
pass
try:
c=data.iloc[2,1]
except:
pass
try:
d=data.iloc[0,2]
except:
pass
我想知道是否有更好的方法,例如函数try_except()或其他方法,以便可以如下所示使用它:
try_except(b=data.iloc[1,1])
try_except(c=data.iloc[2,1])
try_except(d=data.iloc[0,2])
答案 0 :(得分:1)
您可以编写一个执行查找并捕获异常的函数,但是附带地,except: pass
可能不是一个好主意。您应该更详细地处理错误。
def safe_get(container, i, j):
try:
return container[i,j]
except IndexError: # or whatever specific error you're dealing with
return None
b = safe_get(data.iloc, 1, 1)
c = safe_get(data.iloc, 2, 1)
d = safe_get(data.iloc, 0, 2)