擅长:python、mysql、java
<p>如果您执行以下操作:</p>
<pre class="lang-py prettyprint-override"><code>pd.DataFrame({"A":pd.Series([1,2,3,4], dtype='int'),
"B": pd.Series([1,3], dtype='int')}).astype(int)
</code></pre>
<p>您将得到以下错误:</p>
<pre class="lang-py prettyprint-override"><code> 867 if not np.isfinite(arr).all():
> 868 raise ValueError("Cannot convert non-finite values (NA or inf) to integer")
869
870 elif is_object_dtype(arr):
ValueError: Cannot convert non-finite values (NA or inf) to integer
</code></pre>
<p>这表明问题在于南部的存在</p>
<p>如果要将NaN值转换为整数,例如0,那么应该能够使用<code>.astype(int)</code>强制将指定列转换为整数</p>
<p>例如:</p>
<pre><code>df = pd.DataFrame({"A":pd.Series([1,2,3,4], dtype='int'),
"B": pd.Series([1,3], dtype='int')})
df["B"] = df["B"].fillna(0).astype(int)
</code></pre>