Skip to content

Commit 355d3fb

Browse files
authored
Rename Sort to OrderBy (dotnet#2814)
* Rename sort to orderby and add orderbydescending method * Add doc strings * Update bench mark test * Update tests * Update DataFrameColumn to use orderby * Update doc comment * Additions to sortby * Revert "Additions to sortby" This reverts commit 3931d4e2a72ce44a539be7c27b2592395f3efd35. * Revert "Update doc comment" This reverts commit 192f7797fe2b77625486637badf77046162fedbf. * Revert "Update DataFrameColumn to use orderby" This reverts commit 8f94664c5fd18570cd2b601535e816ca5dd5e3c4.
1 parent afdbc5b commit 355d3fb

File tree

2 files changed

+37
-18
lines changed

2 files changed

+37
-18
lines changed

src/Microsoft.Data.Analysis/DataFrame.cs

+30-12
Original file line numberDiff line numberDiff line change
@@ -254,19 +254,22 @@ public DataFrame Description()
254254
return ret;
255255
}
256256

257-
public DataFrame Sort(string columnName, bool ascending = true)
257+
/// <summary>
258+
/// Orders the data frame by a specified column.
259+
/// </summary>
260+
/// <param name="columnName">The column name to order by</param>
261+
public DataFrame OrderBy(string columnName)
258262
{
259-
DataFrameColumn column = this[columnName];
260-
DataFrameColumn sortIndices = column.GetAscendingSortIndices();
261-
List<DataFrameColumn> newColumns = new List<DataFrameColumn>(Columns.Count);
262-
for (int i = 0; i < Columns.Count; i++)
263-
{
264-
DataFrameColumn oldColumn = Columns[i];
265-
DataFrameColumn newColumn = oldColumn.Clone(sortIndices, !ascending, oldColumn.NullCount);
266-
Debug.Assert(newColumn.NullCount == oldColumn.NullCount);
267-
newColumns.Add(newColumn);
268-
}
269-
return new DataFrame(newColumns);
263+
return Sort(columnName, isAscending: true);
264+
}
265+
266+
/// <summary>
267+
/// Orders the data frame by a specified column in descending order.
268+
/// </summary>
269+
/// <param name="columnName">The column name to order by</param>
270+
public DataFrame OrderByDescending(string columnName)
271+
{
272+
return Sort(columnName, isAscending: false);
270273
}
271274

272275
/// <summary>
@@ -578,6 +581,21 @@ private void OnColumnsChanged()
578581
_schema = null;
579582
}
580583

584+
private DataFrame Sort(string columnName, bool isAscending)
585+
{
586+
DataFrameColumn column = this[columnName];
587+
DataFrameColumn sortIndices = column.GetAscendingSortIndices();
588+
List<DataFrameColumn> newColumns = new List<DataFrameColumn>(Columns.Count);
589+
for (int i = 0; i < Columns.Count; i++)
590+
{
591+
DataFrameColumn oldColumn = Columns[i];
592+
DataFrameColumn newColumn = oldColumn.Clone(sortIndices, !isAscending, oldColumn.NullCount);
593+
Debug.Assert(newColumn.NullCount == oldColumn.NullCount);
594+
newColumns.Add(newColumn);
595+
}
596+
return new DataFrame(newColumns);
597+
}
598+
581599
public override string ToString()
582600
{
583601
StringBuilder sb = new StringBuilder();

tests/Microsoft.Data.Analysis.Tests/DataFrameTests.cs

+7-6
Original file line numberDiff line numberDiff line change
@@ -841,35 +841,36 @@ public void TestComputations()
841841
}
842842

843843
[Fact]
844-
public void TestSort()
844+
public void TestOrderBy()
845845
{
846846
DataFrame df = MakeDataFrameWithAllMutableColumnTypes(20);
847847
df["Int"][0] = 100;
848848
df["Int"][19] = -1;
849849
df["Int"][5] = 2000;
850850

851851
// Sort by "Int" in ascending order
852-
var sortedDf = df.Sort("Int");
852+
var sortedDf = df.OrderBy("Int");
853853
Assert.Null(sortedDf["Int"][19]);
854854
Assert.Equal(-1, sortedDf["Int"][0]);
855855
Assert.Equal(100, sortedDf["Int"][17]);
856856
Assert.Equal(2000, sortedDf["Int"][18]);
857857

858858
// Sort by "Int" in descending order
859-
sortedDf = df.Sort("Int", false);
859+
sortedDf = df.OrderByDescending("Int");
860860
Assert.Null(sortedDf["Int"][19]);
861861
Assert.Equal(-1, sortedDf["Int"][18]);
862862
Assert.Equal(100, sortedDf["Int"][1]);
863863
Assert.Equal(2000, sortedDf["Int"][0]);
864864

865865
// Sort by "String" in ascending order
866-
sortedDf = df.Sort("String");
866+
sortedDf = df.OrderBy("String");
867867
Assert.Null(sortedDf["Int"][19]);
868868
Assert.Equal(1, sortedDf["Int"][1]);
869869
Assert.Equal(8, sortedDf["Int"][17]);
870870
Assert.Equal(9, sortedDf["Int"][18]);
871871

872-
sortedDf = df.Sort("String", false);
872+
// Sort by "String" in descending order
873+
sortedDf = df.OrderByDescending("String");
873874
Assert.Null(sortedDf["Int"][19]);
874875
Assert.Equal(8, sortedDf["Int"][1]);
875876
Assert.Equal(9, sortedDf["Int"][0]);
@@ -886,7 +887,7 @@ public void TestSplitAndSort()
886887
DataFrame dfTrain = SplitTrainTest(df, 0.8f, out dfTest);
887888

888889
// Sort by "Int" in ascending order
889-
var sortedDf = dfTrain.Sort("Int");
890+
var sortedDf = dfTrain.OrderBy("Int");
890891
Assert.Null(sortedDf["Int"][sortedDf.Rows.Count - 1]);
891892
Assert.Equal(1, sortedDf["Int"][0]);
892893
Assert.Equal(100000, sortedDf["Int"][sortedDf.Rows.Count - 3]);

0 commit comments

Comments
 (0)