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.pivot { city }.count { age > 18 }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: Pivot
LondonDubaiMoscowMilanTokyonull
DataFrame 1 x 5DataFrame 1 x 5DataFrame 2 x 5DataFrame 1 x 5DataFrame 1 x 5DataFrame 1 x 5

Output DataRow
LondonDubaiMoscowMilanTokyonull
012111


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

Step 1: Pivot
AliceBobCharlie
DataFrame 2 x 5DataFrame 2 x 5DataFrame 3 x 5

Step 2: PivotGroupBy
lastNamename
firstName
Cooper{ Alice: DataFrame [1 x 5], B..., C... }
Dylan{ Alice: DataFrame [0 x 0], B..., C... }
Daniels{ Alice: DataFrame [0 x 0], B..., C... }
Chaplin{ Alice: DataFrame [0 x 0], B..., C... }
Marley{ Alice: DataFrame [0 x 0], B..., C... }
Wolf{ Alice: DataFrame [1 x 5], B..., C... }
Byrd{ Alice: DataFrame [0 x 0], B..., C... }

Output DataFrame: rowsCount = 7, columnsCount = 2
lastNamename
firstName
Cooper{ Alice: 1, Bob: 0, Charlie: 0 }
Dylan{ Alice: 0, Bob: 1, Charlie: 0 }
Daniels{ Alice: 0, Bob: 0, Charlie: 1 }
Chaplin{ Alice: 0, Bob: 0, Charlie: 1 }
Marley{ Alice: 0, Bob: 1, Charlie: 0 }
Wolf{ Alice: 1, Bob: 0, Charlie: 0 }
Byrd{ Alice: 0, Bob: 0, Charlie: 1 }