我需要在Deedle中加载许多CSV文件。问题是它们格式不正确,因为第一行有8列,但其余数据有7列。 我试图在Deedle中加载它们,将“hasHeader”选项设置为true,将“inferTypes”设置为false并传递模式,但由于第一行,我总是出错。
有一种方法可以说Deedle跳过一行或多行吗?
由于
答案 0 :(得分:2)
一般而言,根据文档,这应该有效(对于带有三列的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