科学数据

时间:2012-05-10 16:12:53

标签: csv wolfram-mathematica

我想从损坏的CSV文件中导入数据。它包含科学数字,它是一个包含大约300000行和27列的大数据集。当我使用

导入它时
Import["data.csv","HeaderLines"->1]

数据格式是字符串。所以我通过

将其更改为数据表格式
StringSplit[ToString[data[[#]]], ";"] & /@ 
 Range[Dimensions[
    Import["data.csv"]][[1]]]

我需要使用第一列来分析数据。但问题是这一行是 字符串类型的科学数字!!我想把它改成数字。我用了这个命令:

 ToExpression[Internal`StringToDouble[fdata[[All, 1]][[#]]]] & /@ 
  Range[291407];

但这需要花费数小时才能完成!你知道如何在不浪费时间的情况下做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

(* read the first 5 rows *)
d = ReadList["data.csv", Table[Number, {27}], 5]


(* read the rows 100 to 150 *)
s = OpenRead["data.csv"];
Skip[s, Record, 99]
d = ReadList[s, Table[Number, {27}], 51]
Close[s]

d[[All,1]]会为您提供第一列。