更改 Deedle 框架中的数据类型

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)

我发现它仍然是一个浮动。我哪里错了?

谢谢。

Gen*_*ski 5

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)