擅长:python、mysql、java
<p>问题是,由于您是按行分配数据的,但数据类型是按列分组的,因此数据类型会转换为<code>object</code>数据类型,这不是一件好事,您将失去所有的效率。因此,一种方法是根据需要转换将强制为float/int dtype的类型。</p>
<p>正如我们在另一个问题中所回答的,如果您一次构建框架(或逐列构建),则不需要执行此步骤</p>
<pre><code>In [23]: def convert(x):
....: try:
....: return x.astype(int)
....: except:
....: return x
....:
In [24]: df.apply(convert)
Out[24]:
a b c d
x 10 10 NaN 10
y 1 5 2 3
z 1 2 3 4
In [25]: df.apply(convert).dtypes
Out[25]:
a int64
b int64
c float64
d int64
dtype: object
In [26]: df.apply(convert).to_csv('test.csv')
In [27]: !cat test.csv
,a,b,c,d
x,10,10,,10
y,1,5,2.0,3
z,1,2,3.0,4
</code></pre>