我遇到的问题是向DataFrame添加一行会改变列的数据类型:
我试过指定我添加的值的数据类型:
但这也行不通。有没有解决方案,而不使用返回新对象的函数?
>>> from pandas import DataFrame
>>> df = DataFrame({'a' : range(10)}, dtype='i4')
>>> df
a
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
[10 rows x 1 columns]
我特别指定dtype为int32(即“i4”),如下所示:
>>> df.dtypes
a int32
dtype: object
然而,添加一行会改变数据类型为float64:
>>> df.loc[10] = 99
>>> df
a
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 99
[11 rows x 1 columns]
>>> df.dtypes
a float64
dtype: object
我试过指定我添加的值的数据类型:
>>> import numpy as np
>>> df = DataFrame({'a' : np.arange(10, dtype=np.int32)})
>>> df.dtypes
a int32
dtype: object
>>> df.loc[10] = np.int32(0)
>>> df.dtypes
a float64
dtype: object
但这也行不通。有没有解决方案,而不使用返回新对象的函数?