我需要根据最后一行的值对 Deedle 数据框的列进行排序。因此,第一列将具有最大值,最后一列将具有最后一行中的最小值。Deedle's Frame 的大部分功能都在行上。
下面是一些生成示例数据的代码,其中 Item2 的值最终会大于 Item1:
#load @"..\..\FSLAB\packages\FsLab\FsLab.fsx"
open System
open System.Drawing
open System.Windows.Forms
open Deedle
open FSharp.Charting
open FSharp.Charting.ChartTypes
let rnd = new System.Random()
let dateRange = [for i in 9..-1..0 -> DateTime.Today.AddDays(float -i)]
let makeData x = [for i in 0..x-2 -> rnd.NextDouble()-0.5] |> List.scan (+) 0.
let series = makeData 10 |> List.zip <| (makeData 10 |> List.map (fun x -> x + 1.))
let df = series |> Frame.ofRecords
df?DateIndex <- dateRange |> Series.ofValues
let df = df.IndexRows<DateTime>("DateIndex")
在这种情况下,Frame 的最后一行将如下所示,第二列中的值较大:
2016/05/14 0:00:00 -> 0.143158562780897 0.918480403450541
但我想按以下顺序排列:
2016/05/14 0:00:00 -> 0.918480403450541 0.143158562780897
我发布了一个答案,但想看看是否还有其他方法,因为我对 Deedle 还不太熟悉。