我需要在 Deedle 中加载许多 CSV 文件。问题是它们的格式不正确,因为第一行有 8 列,但其余数据有 7 列。我尝试在 Deedle 中加载它们,将“hasHeader”选项设置为 true,将“inferTypes”设置为 false 并传递架构,但由于第一行,我总是出错。
有没有办法说 Deedle 跳过一行或多行?
谢谢
一般来说,根据文档,这应该有效(对于具有三列的 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