<p>我试图从列中删除除alpha和空格以外的所有字符,但当我使用代码执行相同操作时,它将输出为<code>'nan'</code>,而不是<code>NaN</code>(空值)</p>
<p>输入数据:</p>
<pre><code>col1
ABC ad
YQW \2
AQ4 GH
@34
#45
NaN
</code></pre>
<p>预期产出:</p>
<pre><code>col1
ABC ad
YQW
AQ GH
NaN
NaN
NaN
</code></pre>
<p>我一直在使用的代码:</p>
<pre><code>df['col1'] = df['col1'].astype(str).str.extract(r'([A-Za-z]+(?: [A-Za-z]+)*)')
</code></pre>
<p>稍后,我将使用此列检查<code>NaN</code>的条件,但它没有给出,因为在执行上述脚本后,它将<code>NaN</code>值更改为<code>'nan'</code></p>
<p>注意:如果不通过<code>.astype(str)</code>转换为字符串,我的数据将</p>
<blockquote>
<p>AttributeError: Can only use .str accessor with string values!</p>
</blockquote>
<p>另一种方法是提取字母数字,但排除数字。请参阅下面的代码</p>
<pre><code>df['col1']=df['col1'].str.extract('(\w+\s\w+[^0-9]|\w+[^0-9])')
col1
0 ABC ad
1 YQW
2 AQ4 GH
3 NaN
4 NaN
5 NaN
</code></pre>