为什么会出现ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()

时间:2019-12-16 04:38:12

标签: python pandas dataframe filtering

以下代码为我提供了值错误:

background-image: url('../images/$imageName.png');
  

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

3 个答案:

答案 0 :(得分:2)

那是因为您要比较的是序列而不是值。 我想你的意图是if row['Men'] > row['Women']

第二,这样做会更有效率


major_males = recent_grads[recent_grads.Men > recent_grads.Women].Major.to_list()

答案 1 :(得分:1)

如果recent_grads是一个数据帧,那么这就是您的for循环的样子

major_males=[]

for i, row in recent_grads.iterrows():
    if row['Men']>row['Women']:
        major_males.append(row['Major'])
display(major_males)  

答案 2 :(得分:0)

请注意,当您遍历数据框时,没有使用row变量。相反,请尝试:

major_males=[]

for row in recent_grads:
    if row['Men']>row['Women']:
        major_males.append(row['Major'])
display(major_males)  

出现错误是因为将所有Men值与所有Women值进行比较没有意义:相反,您想一次比较每个值中的一个特定值,这就是更改会。