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

2024-09-22 16:35:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行以下代码:

try:
   result1 = getFunction() 
   if result1["NumberOfPeople"]=="Not found":
                    breaK
                
except:
    raise

result1是一个数据框架,包含两列:Name和NumberOfPeople

我得到的错误是: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。

有什么帮助吗


Tags: 数据代码name框架if错误notraise
3条回答

if result1["NumberOfPeople"]将返回.series,必须强制转换为.str

try:
   result1 = getFunction() 
   if result1["NumberOfPeople"].astype(str)=="Not found": #change from series to string
                    break        
except:
    raise

那么:

try:
   result1 = getFunction() 
   if result1["NumberOfPeople"].str.contains("Not found", regex=False):
       break
                
except:
    raise

result1["NumberOfPeople"]是一个系列(整个列)。当您将一个序列与一个字符串进行比较时,会得到一系列布尔值,其中每个值都与该字符串进行比较。所以result1["NumberOfPeople"]=="Not found"是一个熊猫系列,不能转换成字符串

如果您想在数据帧行上迭代,那么在这种情况下应该使用iterrows()

所以你的代码应该是

result1 = getFunction() 
for row in result1.iterrows():
    if row["NumberOfPeople"] == "Not found":
        break

相关问题 更多 >