gpt4 book ai didi

F# deedle cast 列数据类型

转载 作者:行者123 更新时间:2023-12-02 01:28:06 25 4
gpt4 key购买 nike

我已将 csv 文件加载到 Framedeedle 自动将一列推断为 decimal, whichi 实际上应该是 int

我已经使用下面的行来转换为正确的类型,

df?ColumnName <- df.GetColumn<int>("ColumnName")

我想知道这是否是正确的方法。

最佳答案

您可以在读取 .csv 时控制列的类型。

ReadCsv(...) 有这样的参数 schema:

schema - A string that specifies CSV schema. See the documentation for information about the schema format.

可以找到更多信息here (在控制列类型部分)

例子:

.csv:

Name,Age,Comp1,Comp2
"Joe", 51, 12.1, 20.3
"Tomas", 28, 1.1, 29.3
"Eve", 2, 2.1, 40.3
"Suzanne", 15, 12.4, 26.3

F#:

let pathToCSV = "0.csv"
let schema = "Name,Age(int),Comp1,Comp2"

let loadFrame = Frame.ReadCsv(pathToCSV, schema=schema)
loadFrame.Format() |> printfn "%s"

loadFrame.ColumnTypes |> Seq.iter(printfn "%A")

打印:

     Name    Age Comp1 Comp2
0 -> Joe 51 12,1 20,3
1 -> Tomas 28 1,1 29,3
2 -> Eve 2 2,1 40,3
3 -> Suzanne 15 12,4 26,3

System.String
System.Int32
System.Decimal
System.Decimal

尽管对我而言,Frame 具有正确的列类型并且没有指定模式。

关于F# deedle cast 列数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35909837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com