本文详解如何在 Pandas DataFrame 中通过函数逻辑选择字符串字段并拼接结果,重点解决因缺失值(NaN/None/empty string)导致的 `TypeError: boolean value of NA is ambiguous` 错误,并提供健壮、可复用的实现方案。
该错误的根本原因在于:Pandas 中的 NaN(或 pd.NA)无法直接参与布尔比较(如 df[‘NLT’] != “”),因为 NaN == NaN 返回 False,而 NaN != “” 返回 pd.NA(在较新版本中),导致条件判断结果为模糊的三态布尔值,if 语句无法解析,从而抛出 TypeError。
你原代码中的 if df[‘NLT’] != “” 在遇到 NaN 或空字符串时会失效。正确的做法是显式检查缺失值和空字符串,并使用向量化操作替代逐行 apply(更高效、更安全)。
✅ 推荐解决方案:使用 fillna() + where() 或 numpy.select()
最简洁、高效且鲁棒的方式是避免自定义函数,直接用 Pandas 内置方法: