擅长:python、mysql、java
<p>您当前的方法不起作用,因为<code>len(data['V807'])</code>中的<code>len</code>操作整个列,而不仅仅是一个特定的单元格。执行<code>else</code>位,并将<code>Nope</code>分配给每个单元。这是设置-</p>
<pre><code>data
V807
0 33
1 24
2 NOT EMPL->=3 MOS
3 NK-UNASCERTAIN
4 37
</code></pre>
<pre><code>len(data['V807'])
5
</code></pre>
<p>您需要做的是,对<code>data</code>中的每一行重复这个过程,并为相应的单元格赋值。当然,你可以用循环,或者用<code>apply</code>的循环解决方案,但是用<code>to_numeric</code>有一种更快的方法-</p>
<pre><code>data['V807'] = pd.to_numeric(data['V807'], errors='coerce').fillna('Nope')
data
V807
0 33
1 24
2 Nope
3 Nope
4 37
</code></pre>
<p>使用<code>errors='coerce'</code>参数,任何不是数值类型(整数或浮点)的值都将转换为<code>NaN</code>。在这之后,使用<code>fillna</code>将<code>NaN</code>转换为<code>"Nope"</code>(尽管我非常怀疑您是否需要这最后一步,但这是一种浪费,因为它混合了浮点和字符串)。你知道吗</p>