F#deedle cast列数据类型

F#deedle cast列数据类型,f#,deedle,F#,Deedle,我已经将一个csv文件加载到框架中,deedle自动推断出一列为decimal,实际上应该是int 我用下面这行来做正确类型的铸造 df?ColumnName <- df.GetColumn<int>("ColumnName") df?ColumnName您可以在读取.csv时控制列的类型 ReadCsv(…)具有以下参数: 模式-指定CSV模式的字符串。有关详细信息,请参阅文档 有关架构格式的信息 可以找到更多信息(在控制列类型的部分) 例如: .csv: F#: 打印:

我已经将一个
csv
文件加载到
框架中,
deedle
自动推断出一列为
decimal
,实际上应该是
int

我用下面这行来做正确类型的铸造

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

df?ColumnName您可以在读取.csv时控制列的类型

ReadCsv(…)具有以下参数:

模式-指定CSV模式的字符串。有关详细信息,请参阅文档 有关架构格式的信息

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

例如:

.csv:

F#:

打印:

     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具有正确的列类型,并且没有指定模式。

如果它对您有效,那么它将获取列并用指定的类型覆盖

您还有另一个选项,即指定CSV文件的架构:

•推断类型-指定方法是否应尝试推断 自动设置列的类型(如果需要,请将其设置为false) (指定架构)

•inferRows-如果inferTypes=true,则此参数 指定用于类型推断的行数。默认值 值为0,表示所有行

•模式-指定CSV的字符串 模式。有关架构格式的信息,请参阅文档

您可能可以检查CSV类型的提供程序文档以获取ReadCsv

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