擅长:python、mysql、java
<p>您错误地解释了<code>iterrows()</code>给出的a和c。a给出索引号,c给出行。您可以从<code>c[0]</code>获取id,从<code>c[1]</code>获取捐赠布尔值,从<code>c[2]</code>获取捐赠金额。然后您可以使用这些语句,并使用条件语句将它们过滤到适当的列表中。在python中<code>if 5> item >= 1</code>也是一种无效的条件语法</p>
<p>您还可以使用诸如<code>a= val1['controln']</code>之类的语句从循环中的数据帧将整个列分配给a、b和c。这对于您的用例是不正确的,并且您不应该重新分配从<code>iterrows()</code>获得的<code>a</code></p>
<p>您也不需要嵌套for循环<code>for item in c:</code>,因为它对您的用例没有任何用途</p>
<p>正确的示例代码如下所示:</p>
<pre><code>above5=[]
above1=[]
for a,b in df.iterrows():
id = b[0]
donate = b[1]
val = b[2]
if val >= 5:
above5.append(id)
if val >= 1 and val < 5:
above1.append(id)
else:
print('No match')
print('Done')
</code></pre>