回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个数据帧,它是所有的对象-我认为应该是好的。
请注意,第一列的值类似于“10180”。你知道吗</p>
<p>问题解决了:发生了一些奇怪的事情。我的任务负责人解决了这个问题。我们只是把它读成直接的excel,而不是转换成csv(我是用libreoffice来做的)。问题解决了。
一个很大的暗示是所有这些“应该”起作用的东西都不起作用。你知道吗</p>
<p>这些都应该是“10180”-没有小数点。(请注意,在Jupyter中它显示正确。只有当我输出为csv时才应该作为小数点。但是朱庇特知道这是一个物体。)</p>
<p>另一个问题可能是看起来像“2361.9”的数据值。这些应该是浮子。
我想我可以做一个类似的事情,去掉逗号,然后转换。你知道吗</p>
<p>样本数据:</p>
<pre><code>CBSA Code,CBSA Title,violent,murder,rape,robbery,assault,property,burglary,larceny,vehicle theft
10180.0,"Abilene, TX",393.2,5.3,64.0,65.7,258.2,"2,361.9",534.0,"1,670.0",157.8
10420.0,"Akron, OH",361.6,6.4,48.7,73.0,233.6,"2,226.0",415.6,"1,659.4",150.9
10500.0,"Albany, GA",728.5,11.6,30.6,95.1,591.3,"3,734.5",773.4,"2,715.1",246.0
10580.0,"Albany-Schenectady-Troy, NY",283.7,2.2,38.3,62.4,180.8,"1,892.3",226.9,"1,584.8",80.6
</code></pre>
<p>第一列应该是整数。我试过了</p>
<pre><code>df[‘CBSA Code’].apply(np.int64) AND
df[‘CBSA Code’].astype(int) AND
df[‘CBSA Code’].astype(str).astype(int) AND
df[‘CBSA Code’] = df[‘CBSA Code’].astype(str)
df[‘CBSA Code’] = df[‘CBSA Code’].replace(“.0”, ’’)
df[‘CBSA Code’] = df[‘CBSA Code’].astype(‘int’)
</code></pre>
<p>我在其他问题中也看到了一些答案。但这对我没用。这一定是一个常见的难题。有没有一个规范的方法可以做到这一点?你知道吗</p>
<p>带有df['CBSA Code']的错误消息。应用(np.int64型)跟随</p>
<pre><code>---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-189-6c1c6381a02c> in <module>
----> 1 df['CBSA Code'].apply(np.int64)
~\AppData\Roaming\Python\Python37\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds)
3589 else:
3590 values = self.astype(object).values
-> 3591 mapped = lib.map_infer(values, f, convert=convert_dtype)
3592
3593 if len(mapped) and isinstance(mapped[0], Series):
pandas\_libs\lib.pyx in pandas._libs.lib.map_infer()
ValueError: invalid literal for int() with base 10: '10180.0'
</code></pre>