1

我需要在 Deedle 中加载许多 CSV 文件。问题是它们的格式不正确,因为第一行有 8 列,但其余数据有 7 列。我尝试在 Deedle 中加载它们,将“hasHeader”选项设置为 true,将“inferTypes”设置为 false 并传递架构,但由于第一行,我总是出错。

有没有办法说 Deedle 跳过一行或多行?

谢谢

4

1 回答 1

3

一般来说,根据文档,这应该有效(对于具有三列的 csv 文件,无论标题中提供了多少):

let data = Frame.ReadCsv("sample.csv", hasHeaders=false, schema="R1,R2,R3")

但我相信有一个忽略schema争论的错误。因此,我看到的唯一解决方案是使用Stream并手动忽略文件的第一行:

using (File.OpenRead("sample.csv")) ( fun file ->
    while file.ReadByte() <> 10 do ()
    let data = Frame.ReadCsv(stream=file, schema = "R1,R2,R3", hasHeaders=true)
    // ...
)

适用于示例文件:

Row1,Row2,Row3,Row4
1,2,3 
a,b,c
于 2014-07-23T21:43:22.753 回答