为什么我会收到值错误:序列的真实值不明确.使用 a.empty、a.bool()、a.item()、a.any() 或



以下代码给了我值错误:

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

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

如果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)  

这是因为您正在比较一个系列而不是一个值。 我猜你的意图是if row['Men'] > row['Women']

其次,这样做会更有效率


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

请注意,在迭代数据框时,您没有使用row变量。相反,请尝试:

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

您收到错误是因为将所有Men值与所有Women值进行比较没有意义:相反,您希望一次比较每个值的一个特定值,这就是更改的作用。

相关内容

最新更新