1
我需要在Deedle中加载许多CSV文件。问题在于它们格式不正确,因为第一行有8列,但其余数据有7列。 我试图加载它们在Deedle中,将“hasHeader”选项设置为true,将“inferTypes”设置为false并传递模式,但由于第一行我总是出错。Deedle:如何加载格式不正确的CSV文件?
有一种方法可以说Deedle跳过一行或多行?
感谢
我需要在Deedle中加载许多CSV文件。问题在于它们格式不正确,因为第一行有8列,但其余数据有7列。 我试图加载它们在Deedle中,将“hasHeader”选项设置为true,将“inferTypes”设置为false并传递模式,但由于第一行我总是出错。Deedle:如何加载格式不正确的CSV文件?
有一种方法可以说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
什么是'StreamReader'呢? – Daniel
@丹尼尔,好点,它是从以前的尝试。我已将其删除。 –
@KonradKokosa,谢谢你的回答。我试图实现你的代码片断,但缺少一些东西,我是F#和.NET的新手。请,你能建议我缺少什么,或在哪里寻找解决方案?谢谢。 –