我有一个包含多个表格的Excel报告,并且正在使用Pandas解析它。我从报告中抓取的键值对始终在相同的列中。因此,我将我的查找分组到键值相同的组中,并使用iloc
查找正确的行:
df[df.iloc[:, key_column] == 'apple'][value_column].values[0]
每个文件中都有许多键,但偶尔会缺失一个键。在极少数情况下,始终存在的关键字不存在时,整个块将失败(index 0 is out of bounds for axis 0 with size 0
)。
try:
parsed_xls['fruit'] = df[df.iloc[:, key_column] == 'apple'][value_column].values[0]
parsed_xls['vegetable'] = df[df.iloc[:, key_column] == 'onion'][value_column].values[0]
parsed_xls['stationary'] = df[df.iloc[:, key_column] == 'stapler'][value_column].values[0]
except:
# error reporting
除了把每个键和值对放入自己的try...except
块或使用帮助函数在键查找失败时提供零值之外,是否有更类似于Pandas的方法来处理引发此异常的iloc
查找(并且仍能捕获错误)?
key_column
还是value_column
?或者说,在键列中可能没有这样的键存在?到底是哪一个? - cs95