擅长:python、mysql、java
<p>在Python中,<code>&</code>优先于<code>==</code></p>
<p><a href="http://www.annedawson.net/Python_Precedence.htm" rel="nofollow noreferrer">http://www.annedawson.net/Python_Precedence.htm</a></p>
<p>所以当你做<code>all_data.MSZoning.isnull() & all_data.Neighborhood == "Mitchel"</code>时,这被解释为<code>(all_data.MSZoning.isnull() & all_data.Neighborhood) == "Mitchel"</code>,现在Python尝试<code>AND</code>一个带有str序列的布尔序列,看看它是否等于一个str <code>"Mitchel"</code>。解决方案是将测试放在括号中:<code>(all_data.MSZoning.isnull()) & (all_data.Neighborhood == "Mitchel")</code>。有时,如果我有很多选择器,我会将它们分配给变量,然后<code>AND</code>它们,例如:</p>
<pre><code>null_zoning = all_data.MSZoning.isnull()
Mitchel_neighb = all_data.Neighborhood == "Mitchel"
all_data.loc[null_zoning & Mitchel_neighb, "MSZoning"] = "RL"
</code></pre>
<p>这不仅解决了操作顺序问题,还意味着<code>all_data.loc[null_zoning & Mitchel_neighb, "MSZoning"] = "RL"</code>适合一行。在</p>