df.groupBy { city }.max()
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 4
cityageweightisHappy
London1554true
Dubai4587true
Moscow3090true
Milan40nulltrue
Tokyo3068true
null2055false


df.groupBy { city }.mean()
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 3
cityageweight
London15.054.0
Dubai45.087.0
Moscow25.090.0
Milan40.0NaN
Tokyo30.068.0
null20.055.0


df.groupBy { city }.max { age }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 2
cityage
London15
Dubai45
Moscow30
Milan40
Tokyo30
null20


df.groupBy { city }.sum("total weight") { weight }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 2
citytotal weight
London54
Dubai87
Moscow90
Milan0
Tokyo68
null55


df.groupBy { city }.count()
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 2
citycount
London1
Dubai1
Moscow2
Milan1
Tokyo1
null1


df.groupBy { city }.max { name.firstName.length() and name.lastName.length() }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 2
citymax
London6
Dubai5
Moscow7
Milan7
Tokyo6
null5


df.groupBy { city }.medianFor { age and weight }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 3
cityageweight
London15.054.0
Dubai45.087.0
Moscow25.090.0
Milan40.0null
Tokyo30.068.0
null20.055.0


df.groupBy { city }.minFor { (age into "min age") and (weight into "min weight") }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 3
citymin agemin weight
London1554
Dubai4587
Moscow2090
Milan40null
Tokyo3068
null2055


df.groupBy { city }.meanOf("mean ratio") { weight?.div(age) }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: GroupBy
citygroup
LondonDataFrame 1 x 5
DubaiDataFrame 1 x 5
MoscowDataFrame 2 x 5
MilanDataFrame 1 x 5
TokyoDataFrame 1 x 5
nullDataFrame 1 x 5

Output DataFrame: rowsCount = 6, columnsCount = 2
citymean ratio
London3.0
Dubai1.0
Moscow3.0
MilanNaN
Tokyo2.0
null2.0