F# deedle cast 列数据类型
F# deedle cast column datatype
我已将 csv
文件加载到 Frame
,deedle
自动将一列推断为 decimal
,实际上应该是 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 具有正确的列类型并且没有指定架构。
好吧,如果它适合你...,这将获取列并用指定的类型覆盖。
您还有另一种选择,即指定 CSV 文件的架构:
•inferTypes - Specifies whether the method should attempt to infer
types of columns automatically (set this to false if you want to
specify schema)
•inferRows - If inferTypes=true, this parameter
specifies the number of rows to use for type inference. The default
value is 0, meaning all rows.
•schema - A string that specifies CSV
schema. See the documentation for information about the schema format.
您或许可以查看 CSV 类型提供程序文档中的 ReadCsv。
我已将 csv
文件加载到 Frame
,deedle
自动将一列推断为 decimal
,实际上应该是 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 具有正确的列类型并且没有指定架构。
好吧,如果它适合你...,这将获取列并用指定的类型覆盖。
您还有另一种选择,即指定 CSV 文件的架构:
•inferTypes - Specifies whether the method should attempt to infer types of columns automatically (set this to false if you want to specify schema)
•inferRows - If inferTypes=true, this parameter specifies the number of rows to use for type inference. The default value is 0, meaning all rows.
•schema - A string that specifies CSV schema. See the documentation for information about the schema format.
您或许可以查看 CSV 类型提供程序文档中的 ReadCsv。