使用Deedle数据框

时间:2014-05-30 06:57:07

标签: f# deedle

我是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

2 个答案:

答案 0 :(得分:1)

您可以使用

直接从CSV文件构建deedle数据框
Frame.ReadCsv("csvPath")

答案 1 :(得分: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)