1

我是 F# 的新手,想将下面的代码转换为输出 deedle 数据帧,甚至将输出数组转换为数据帧。

let GetDataBitstamp() =
    async {
        let! csv = sprintf "http://api.bitcoincharts.com/v1/trades.csv?symbol=bitstampUSD" |> fetch
        return
            [|
                for row in csv.Split([|'\n'|], StringSplitOptions.RemoveEmptyEntries) do
                    match row.Split([|','|]) with
                    | [|d; p; v |]-> yield (d,p)
                    | _ -> yield! [||]
            |] |> Map.ofArray
    } |> Async.RunSynchronously
4

2 回答 2

1

您可以使用 CSV 文件直接构建 deedle 数据框

Frame.ReadCsv("csvPath")
于 2014-05-30T10:17:30.070 回答
1

我找到了一个适合我的解决方案,请参见下面的代码:

module may =
   let simples() =
          let time,price =Map.toArray(Bitcharts.GetDataBitstamp())|> Array.unzip
          time, price

下一步是将时间、价格数组放入数据系列中:

let df1 : Frame<int, string> = frame[]
let d,a = may.simples()
df1.AddSeries("ts",d)
df1.AddSeries("price",a)
于 2014-06-07T13:31:56.797 回答