首页 > 解决方案 > Python ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

问题描述

当我运行以下代码时:

if df.loc[df['state_code'].isin(['12','09'])]:

它给出了这个错误:

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

这里有什么问题?

标签: pythonpandas

解决方案


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

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

所以:

if not df.loc[df['state_code'].isin(['12','09'])].empty:

或者

if df.loc[df['state_code'].isin(['12','09'])].any():

或者

if df.loc[df['state_code'].isin(['12','09'])].all():

查看文档

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


推荐阅读