<p>您也可以尝试这样做</p>
<pre><code>df['A'] = pd.to_numeric(df['A'], errors="coerce").fillna(0).astype(int).to_frame()
</code></pre>
<p>上述代码不舍入为整数。如果你想把数字四舍五入,你可以给这个。在<code>fillna(0)</code>和<code>.astype(int)</code>之后的<code>.round()</code>将向上舍入。如果您希望将值向上舍入为整数,则这是一个选项</p>
<pre><code>df['A'] = pd.to_numeric(df['A'], errors="coerce").fillna(0).round().astype(int).to_frame()
</code></pre>
<p>它将<code>NaN</code>值转换为<code>0</code>,然后将所有值转换为整数值。这样,您将获得所需的值</p>
<pre><code>import pandas as pd
df = pd.DataFrame({'A':[1.8, 3.3, 5.2, 'Good', 7, 9,2],
'B':['Apple','Banana','Cherry','Donuts','Egg','Fig','Grape']})
print (df)
df['A'] = pd.to_numeric(df['A'], errors="coerce").fillna(0).astype(int).to_frame()
print (df)
</code></pre>
<p>这将把<code>df['A']</code>中的值转换为数值,同时将所有字符串设置为<code>NaN</code>,然后将这些<code>NaN</code>转换为<code>0</code>,然后将所有值转换为int。由于这是一个系列,您需要将其转换回带有<code>to_frame()</code>的数据帧</p>
<p>上述代码的输出为:</p>
<p>原始数据帧:</p>
<pre><code> A B
0 1.8 Apple
1 3.3 Banana
2 5.2 Cherry
3 Good Donuts
4 7 Egg
5 9 Fig
6 2 Grape
</code></pre>
<p>转换的数据帧:</p>
<pre><code> A B
0 1 Apple
1 3 Banana
2 5 Cherry
3 0 Donuts
4 7 Egg
5 9 Fig
6 2 Grape
</code></pre>