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

pandas.read_csv reading string instead of float

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

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,

您没有告诉 read_csv 您没有 header 行,因此您正在观察额外的小数点作为名称冲突,将 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