【问题标题】:genfromtxt import data from csv file issuegenfromtxt 从 csv 文件导入数据问题
【发布时间】:2015-08-15 11:42:01
【问题描述】:

我的 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 中将这个二维数组数据用于 interp1d。

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

现在我正在使用 MAC OS X 并使用 mac MS excel 编辑此文件仅剪切粘贴,不更改数据类型。然后当我像以前一样导入这个文件并打印时。显示错误: [-7.21 楠楠楠楠楠楠] f = interp1d(数据[:,0], 数据[:,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')

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

【问题讨论】:

  • 我不清楚这是否能解决您的问题,但由于您的文件不使用逗号作为分隔符,因此请不要在 genfromtxt 中使用参数 delimiter=','。跨度>
  • 添加这个defaultfmt ="%f"
  • 那个 MAC \r (CR) 似乎给 DOS 版本带来了问题。 DOS 使用 (LF/CR)、UNIX (LF)。 delimiter=',' 有效,我有点惊讶,因为文件中没有 ,

标签: python macos csv numpy genfromtxt


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 2015-10-04
    • 2011-04-15
    • 1970-01-01
    相关资源
    最近更新 更多