1

我想从损坏的 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];

但是这样做需要几个小时!你知道我怎样才能做到这一点而不浪费时间吗?

4

1 回答 1

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]]为您提供第一列。

于 2012-05-10T21:39:14.180 回答