Julia DataFrame列名不存在时的控制流实现及try-except等效方案
Julia DataFrame列不存在时的控制流处理方案
Julia提供了和Python try-except 完全等效的异常捕获结构try-catch,你可以直接用这种写法,也可以用更地道的预判断写法实现需求:
- 方案1:
try-catch异常捕获写法(和你的Python逻辑完全对齐)
try if df[1, "id"] in err_Li println("NOT VALID") end catch # 捕获到列不存在、取值失败等任意异常时直接跳过 end
- 方案2:预判断列存在性写法(性能更优,避免异常捕获的额外开销)
你可以提前用names(df)获取DataFrame的所有列名,配合短路与&&实现安全判断,逻辑更清晰:
if "id" in names(df) && df[1, "id"] in err_Li println("NOT VALID") end
注:如果习惯用Symbol类型指代列名,也可以写成
hasproperty(df, :id) && df[1, :id] in err_Li,执行效果完全一致。
内容的提问来源于stack exchange,提问作者AfterFray
相关产品推荐
相关产品推荐

