Deedle:将函数应用于Frame值

时间:2014-10-10 14:56:37

标签: f# deedle

我有一个包含几个时间序列的Frame,我需要规范化这些值。然后,我需要获取每个系列的第一个元素,将系列的所有元素除以它。 我尝试使用以下代码:

let normalize =
    MyFrame
    |> Frame.mapColValues (fun os ->
       let osAsFloat = os.As<float>()
       let firstItem = osAsFloat.GetAt(0)
       osAsFloat / firstItem)



但我在osAsFloat.GetAt(0)有错误。 我找到的唯一方法是在单个Series中转换值,在for循环中,将函数应用于值。 有一种更实用的方法可以达到相同的效果吗? 感谢。

修改
MyFrame来自下一个从Yahoo!下载数据的功能。财务:

let loadStocks symbols startDate endDate =
    [for symbol in symbols ->
        symbol =>
            let data = StockData.Load(urlFor symbol startDate endDate).Rows
            Series.ofObservations [for d in data -> (d.Date, d.Close)]]
    |> Frame.ofColumns
    |> Frame.sortRowsByKey
let MyFrame = loadStocks symbolList startDate endDate


它的类型是Frame<DateTime, string>

0 个答案:

没有答案