arrays - F# CSV - 为每一行从列数据创建一个数组

标签 arrays csv f#

我有一个 CSV 文件,其中第一列是标题,接下来的 700 多列是一些整数数据。

Title D1 D2 D3 D4 .. D700
Name1  0  1  7  5     48 

我尝试使用 CsvProvider 读取文件,然后将数据转换为我的自定义类型
type DigitRecord = { Title:string; Digits:int[] }

问题是我不知道如何将所有列数据(第一个带标题的除外)放入 int[] 数组中。
 let dataRecords = 
    CSV.Rows 
    |> Seq.map (fun record -> {Title = record.Title; Digits = ???})

我想获得 Title=Name1 和 Digits=[|0,1,7,5...48|] 的记录

我是 F# 的新手,如果有任何帮助,我将不胜感激!

最佳答案

我认为最简单的方法是使用 CsvParser 像这样:

let readData (path : string) seps =
    CsvFile.Load(path, seps).Rows
    |> Seq.map
        (fun row -> row.Columns.[0], row.Columns |> Array.skip 1 |> Array.map int)
    |> Seq.map
        (fun (title, digits) -> {Title = title; Digits = digits})

关于arrays - F# CSV - 为每一行从列数据创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50541909/

相关文章:

python - 如何仅将某些值记录到 CSV 中?

haskell - 使用 fsharp-typeclasses 来创建适用于任意 monad 的函数

f# - 点自由函数/闭包和泛型类型之间的困境?

c - do while 的奇怪行为

mysql - 将数组传递给MySQL存储例程

PHP json_encode 在 MySQL 表的第一个索引上返回空数组

python - Django models.CommaSeparatedIntegerField 与 forms.CheckboxSelectMultiple 小部件

MongoDB - mongoexport 嵌套数组中的所有对象

math - F# floor 函数不能正确舍入?

objective-c - 使用包含数字的字符串对数组进行排序