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
我的程序一直以字符串形式读取输入文件,即使它的所有值都是浮点数。
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