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