SeriesGroupBy { public <R> Series<R> agg(SeriesAggregator<? super T, R> aggregator) { return SeriesAggregation.aggGroupBy(this, aggregator); } SeriesGroupBy(Series<T> ungrouped, Map<Object, IntSeries> groupsIndex); int size(); Collection<Object> getGroups(); boolean hasGroup(Object key); IntSeries getGroupIndex(Object key); Series<T> getGroup(Object key); Series<T> toSeries(); Series<R> agg(SeriesAggregator<? super T, R> aggregator); DataFrame aggMultiple(SeriesAggregator<? super T, ?>... aggregators);  }
@Test public void testAgg() { Series<String> aggregated = Series.forData("a", "b", "cd", "e", "fg") .group((String s) -> s.length()) .agg(SeriesAggregator.concat("_")); new SeriesAsserts(aggregated).expectData("a_b_e", "cd_fg"); }