FrameExtensions似乎只支持按单列排序。 OrderBy有一个“.ThenBy”选项,但似乎已被弃用。还有其他任何方式按“DATE”排序,然后按“RECN”排序吗?
代码:
using System;
using Deedle;
namespace test
{
class MainClass
{
public static void Main (string[] args)
{
var df1 = Frame.ReadCsv (@"../../test.csv");
Console.WriteLine(df1.GetType ());
df1.Print ();
FrameExtensions.SortRows (df1, "DATE").Print();
}
}
}
这不起作用:
df1.GroupRowsBy<int> ("RECN").GroupRowsBy<DateTime> ("DATE").Print ();
df1.GroupRowsBy<DateTime> ("DATE").GroupRowsBy<int> ("RECN").Print ();
数据:
NAME,TYPE,DATE,RECN,COMM
Kermit,Frog,06/30/14,1,1test
Kermit,Frog,06/30/14,1,2test
Ms. Piggy,Pig,07/01/14,2,1test
Fozzy,Bear,06/29/14,3,1test
Kermit,Frog,07/02/14,1,3test
Kermit,Frog,07/02/14,1,4test
Kermit,Frog,07/02/14,1,5test
Ms. Piggy,Pig,07/02/14,2,3test
Fozzy,Bear,07/02/14,3,2test
Ms. Piggy,Pig,07/02/14,2,2test
答案 0 :(得分:1)
假设FrameExtensions.SortRows
为stable,您可以按照排序优先级的相反顺序对每列进行排序。
例如,如果您想按&#34; DATE&#34;排序然后通过&#34; RECN&#34;,首先按&#34; RECN&#34;然后按&#34; DATE&#34;。
对结果进行排序这取决于Radix Sort的工作原理。