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

Output DataFrame: rowsCount = 7, columnsCount = 5
nameageweightisHappycity
firstNamelastNameLondonDubaiMoscowMilanTokyonull
AliceCooper1554true100000
BobDylan4587true010000
CharlieDaniels20nullfalse001000
CharlieChaplin40nulltrue000100
BobMarley3068true000010
AliceWolf2055false000001
CharlieByrd3090true001000


df.pivot { city }.groupByOther().count()
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

Step 2: PivotGroupBy
nameageweightisHappycity
firstNamelastNameLondonDubaiMoscowMilanTokyonull
AliceCooper1554trueDataFrame 1 x 5
BobDylan4587trueDataFrame 1 x 5
CharlieDaniels20nullfalseDataFrame 1 x 5
CharlieChaplin40nulltrueDataFrame 1 x 5
BobMarley3068trueDataFrame 1 x 5
AliceWolf2055falseDataFrame 1 x 5
CharlieByrd3090trueDataFrame 1 x 5

Output DataFrame: rowsCount = 7, columnsCount = 5
nameageweightisHappycity
firstNamelastNameLondonDubaiMoscowMilanTokyonull
AliceCooper1554true100000
BobDylan4587true010000
CharlieDaniels20nullfalse001000
CharlieChaplin40nulltrue000100
BobMarley3068true000010
AliceWolf2055false000001
CharlieByrd3090true001000


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

Step 1: GroupBy
namegroup
firstNamelastName
AliceCooperDataFrame 1 x 5
BobDylanDataFrame 1 x 5
CharlieDanielsDataFrame 1 x 5
CharlieChaplinDataFrame 1 x 5
BobMarleyDataFrame 1 x 5
AliceWolfDataFrame 1 x 5
CharlieByrdDataFrame 1 x 5

Output DataFrame: rowsCount = 7, columnsCount = 2
namecity
firstNamelastNameLondonDubaiMoscowMilanTokyonull
AliceCooper100000
BobDylan010000
CharlieDaniels001000
CharlieChaplin000100
BobMarley000010
AliceWolf000001
CharlieByrd001000


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

Step 1: GroupBy
namegroup
firstNamelastName
AliceCooperDataFrame 1 x 5
BobDylanDataFrame 1 x 5
CharlieDanielsDataFrame 1 x 5
CharlieChaplinDataFrame 1 x 5
BobMarleyDataFrame 1 x 5
AliceWolfDataFrame 1 x 5
CharlieByrdDataFrame 1 x 5

Step 2: PivotGroupBy
namecity
firstNamelastNameLondonDubaiMoscowMilanTokyonull
AliceCooperDataFrame 1 x 5
BobDylanDataFrame 1 x 5
CharlieDanielsDataFrame 1 x 5
CharlieChaplinDataFrame 1 x 5
BobMarleyDataFrame 1 x 5
AliceWolfDataFrame 1 x 5
CharlieByrdDataFrame 1 x 5

Output DataFrame: rowsCount = 7, columnsCount = 2
namecity
firstNamelastNameLondonDubaiMoscowMilanTokyonull
AliceCooper100000
BobDylan010000
CharlieDaniels001000
CharlieChaplin000100
BobMarley000010
AliceWolf000001
CharlieByrd001000


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

Step 1: GroupBy
namegroup
firstNamelastName
AliceCooperDataFrame 1 x 5
BobDylanDataFrame 1 x 5
CharlieDanielsDataFrame 1 x 5
CharlieChaplinDataFrame 1 x 5
BobMarleyDataFrame 1 x 5
AliceWolfDataFrame 1 x 5
CharlieByrdDataFrame 1 x 5

Output DataFrame: rowsCount = 7, columnsCount = 2
namecity
firstNamelastNameLondonDubaiMoscowMilanTokyonull
AliceCoopertruefalsefalsefalsefalsefalse
BobDylanfalsetruefalsefalsefalsefalse
CharlieDanielsfalsefalsetruefalsefalsefalse
CharlieChaplinfalsefalsefalsetruefalsefalse
BobMarleyfalsefalsefalsefalsetruefalse
AliceWolffalsefalsefalsefalsefalsetrue
CharlieByrdfalsefalsetruefalsefalsefalse