pandas.read_csv读取字符串而不是浮点数

时间:2015-02-20 08:34:22

标签: python numpy pandas

我的程序一直将输入文件作为字符串读取,即使它的所有值都是浮点数。

pd.read_csv('input.txt', sep=' ', dtype=np.float32)

此外,由于某些原因,我的数组在浮点值中包含多个点,即使格式在我的文本中很好

input.txt内容:

-0.90051 -0.90051 -1.071287 -1.098813 -1.023997 -0.90051 -1.187293

pd.read_csv的结果('input.txt',sep ='',dtype = np.float32)

-0.90051, -0.90051.1, -1.071287, -1.098813, -1.023997, -0.90051.2 -1.187293,

1 个答案:

答案 0 :(得分:1)

你没有告诉read_csv你没有标题行,因此当你的名字发生冲突时,你会观察到额外的小数点,将header=None传递给read_csv

In [354]:
# your code
temp='''-0.90051 -0.90051 -1.071287 -1.098813 -1.023997 -0.90051 -1.187293'''
pd.read_csv(io.StringIO(temp), sep=' ', dtype=np.float32)
Out[354]:
Empty DataFrame
Columns: [-0.90051, -0.90051.1, -1.071287, -1.098813, -1.023997, -0.90051.2, -1.187293]
Index: []

In [355]:
# pass header=None
pd.read_csv(io.StringIO(temp), sep=' ', header=None, dtype=np.float32)
Out[355]:
         0        1         2         3         4        5         6
0 -0.90051 -0.90051 -1.071287 -1.098813 -1.023997 -0.90051 -1.187293