擅长:python、mysql、java
<p>原因是这一行是<code>pandas</code>反模式:</p>
<pre class="lang-py prettyprint-override"><code>sg_sectors = sg_sectors.append({'Sector': sector,
'Latitude': latitude,
'Longitude': longitude}, ignore_index=True)
</code></pre>
<p>每次迭代都要创建一个<em>新的</em><code>DataFrame</code>。在这种特定情况下,这可能无关紧要,因为您的数据集相对较小,但如果您放大,它会。很多</p>
<p>这还有一个不幸的副作用,那就是将使用的类型扩展到最窄的通用超类型,在本例中是<code>float</code>。换句话说,<code>sector</code>最初是一个<code>int</code>,但因为<code>latitude</code>和<code>longitude</code>是<code>floats</code>,所以<code>sector</code>本身被扩大为一个<code>float</code></p>
<p>如果要避免这种情况,请在<code>list</code>中收集值,例如在开始时定义<code>sg_sector_data = []</code>。然后,在循环中,您可以有:</p>
<pre class="lang-py prettyprint-override"><code>sector_data = {'Sector': sector, 'Latitude': latitude, 'Longitude': longitude}
sg_sector_data.append(sector_data)
</code></pre>
<p>最后,在最后,用<code>sg_sectors = pd.DataFrame(sg_sector_data)</code>创建你的<code>DataFrame</code></p>