Python ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

bor*_*rfo 3 python pandas

当我运行以下代码时:

if df.loc[df['state_code'].isin(['12','09'])]:
Run Code Online (Sandbox Code Playgroud)

它给出了这个错误:

ValueError:系列的真值不明确。
使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

这里有什么问题吗?

ted*_*ted 6

该问题告诉您,Series您的操作返回的结果不具有内在的真值。事实上,该操作总是会返回一些东西,你必须选择你真正想要的东西:

  • 如果任何返回值为 true,则表示存在一个元素,df其中['12','09']
  • 如果所有返回值都为 true,则意味着 in 中的所有元素都df['12','09']
  • 如果返回Series包含任何元素,则表示不包含empty

所以:

if not df.loc[df['state_code'].isin(['12','09'])].empty:
Run Code Online (Sandbox Code Playgroud)

或者

if df.loc[df['state_code'].isin(['12','09'])].any():
Run Code Online (Sandbox Code Playgroud)

或者

if df.loc[df['state_code'].isin(['12','09'])].all():
Run Code Online (Sandbox Code Playgroud)

查看文档

如需更多帮助,请提供代码的最小工作示例