如何将数据从FSharp.Data.CsvProvider传递给Deedle.Frame?

Fel*_*uno 6 csv f# f#-data deedle

我正在尝试将数据从FSharp.Data.CsvProvider传递到Deedle.Frame.

我几乎是F#的新手,我需要将一些CSV文件从文化"it-IT"转换为"en-US",这样我才能使用这些数据.

我找到了Deedle,我想学习如何使用它,但是我无法直接转换Deedle中的CSV文件中的数据(至少是用F#交互式打印的).

我注意到CsvProvider进行了转换,但经过几天的尝试后,我无法传递数据.

Tom*_*cek 5

我相信Deedle应该能够处理使用非美国文化的CSV文件:

let frame = Frame.ReadCsv("C:\\test.csv", culture="it-IT")
Run Code Online (Sandbox Code Playgroud)

也就是说,如果您出于某种原因想要使用CSV类型提供程序,可以使用:

let cs = new CsvProvider<"C:/data/fb.csv">()

cs.Rows
|> Frame.ofRecords
|> Frame.indexColsWith cs.Headers.Value
Run Code Online (Sandbox Code Playgroud)

这用于Frame.ofRecords从任何.NET集合创建数据框,并将对象的属性扩展为列.CSV提供程序将数据表示为元组,因此这不会正确命名标题 - 但该Frame.indexColsWith函数允许您将标题命名为明确.