diff --git a/dflib/src/main/java/com/nhl/dflib/GroupBy.java b/dflib/src/main/java/com/nhl/dflib/GroupBy.java index a053c6c1..278b2ce5 100644 --- a/dflib/src/main/java/com/nhl/dflib/GroupBy.java +++ b/dflib/src/main/java/com/nhl/dflib/GroupBy.java @@ -81,6 +81,10 @@ public DataFrame getGroup(Object key) { */ public Series rowNumbers() { + if(groupsIndex.size() == 0) { + return IntSeries.forInts(); + } + DataFrame[] numberedIndex = new DataFrame[groupsIndex.size()]; int i = 0; diff --git a/dflib/src/test/java/com/nhl/dflib/DataFrame_GroupBy_WindowFuncsTest.java b/dflib/src/test/java/com/nhl/dflib/DataFrame_GroupBy_WindowFuncsTest.java index bcbf04f3..cdefd6d5 100644 --- a/dflib/src/test/java/com/nhl/dflib/DataFrame_GroupBy_WindowFuncsTest.java +++ b/dflib/src/test/java/com/nhl/dflib/DataFrame_GroupBy_WindowFuncsTest.java @@ -5,6 +5,13 @@ public class DataFrame_GroupBy_WindowFuncsTest { + @Test + public void testGroupBy_RowNumbers_Emtpy() { + DataFrame df = DataFrame.newFrame("a", "b", "c").empty(); + Series rn = df.group("a").rowNumbers(); + new SeriesAsserts(rn).expectData(); + } + @Test public void testGroupBy_RowNumbers0() { DataFrame df = DataFrame.newFrame("a", "b", "c").foldByRow(