我想从损坏的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];
但这需要花费数小时才能完成!你知道如何在不浪费时间的情况下做到这一点吗?
答案 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]]
会为您提供第一列。