genfromtxt从csv文件导入数据

时间:2015-08-15 11:42:02

标签: python macos csv numpy genfromtxt

我的csv文件(K2CsSb DOS135.csv)非常简单:

-7.21E+00   1.34E-01
-7.16E+00   1.15E-01
-7.13E+00   0.00E+00
-7.10E+00   0.00E+00
-7.07E+00   0.00E+00

我使用genfromtxt导入此文件,如:

dosdata = genfromtxt('K2CsSb DOS135.csv',delimiter=',')

如果我print(dosdata),它会告诉我:

[[-7.21   0.134]
 [-7.16   0.115]
 [-7.13   0.   ]
 ..., 

我在numpy中将这个2D数组数据用于interp1d。

一切看起来都很完美。 csv文件是在WINDOWS中的MS excel中编辑的。

现在我正在使用MAC OS X并使用mac MS excel编辑此文件只剪切粘贴,不更改数据类型。然后,当我导入此文件与以前一样并打印。告诉我错误: [-7.21 nan nan nan nan nan nan]  f = interp1d(data [:,0],data [:,1]) IndexError:数组的索引太多了 如果我添加dosdata = genfromtxt('K2CsSb DOS135.csv',delimiter=',',dtype=None) 看起来很像:

(-7.21, b'1.30E-01\r-7.16E+00', b'1.20E-01\r-7.13E+00', b'0.00E+00\r-7.10E+00', b'0.00E+00\r-7.07E+00')

为什么会发生这种情况以及如何解决它?

1 个答案:

答案 0 :(得分:0)

找到解决方案。 在mac excel中,使用save as ...有两种类型的csv。一个是MS-DOS csv;另一个是微软csv。 选择Microsoft csv可以解决问题。