Fel*_*uno 3 csv f# type-conversion deedle
我在 Deedle Frame 中导入了一些数据,并且尝试将值类型转换为整数类型。
我使用了以下代码:
let myFrmK01 = Frame.ReadCsv(@"QuandlDataSample.csv", hasHeaders=true)
let myFrmK02 = myFrmK01
|> Frame.indexRowsDate "Date"
|> Frame.sortRowsByKey
Run Code Online (Sandbox Code Playgroud)
现在,要转换我尝试使用的值类型:
let myFrame03 = Frame.mapValues (fun (x:float) -> (Convert.ToUInt64(x * 100.0))) myFrame02
Run Code Online (Sandbox Code Playgroud)
如果我用以下命令查看框架的值:
myFrame03.Item("Adj. Open").Item (DateTime(2017, 5, 3))
Run Code Online (Sandbox Code Playgroud)
我发现它仍然是一个浮动。我哪里错了?
谢谢。
Frame.Item您将属性结果视为列的真实类型是错误的。的签名myFrame03.Item("Adj. Open")是string -> Series<DateTime,float>,因此个体观察的结果不可能是任何东西,但是float。
如果您使用其他形式的Item财产
myFrame03.Item("Adj. Open",DateTime(2017, 5, 3))
Run Code Online (Sandbox Code Playgroud)
有了签名,您在申请后
string*DateTime -> obj必须看到观察结果确实符合预期。unsigned longFrame.mapValues
此外,当有疑问时,您可以随时检查实际的数据框列类型:
myFrame03.ColumnTypes |> Seq.iter (printfn "%A")
Run Code Online (Sandbox Code Playgroud)