df.pivot { city }.groupBy { name }.aggregate { min { age } default 0 }
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
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
AliceCooper1500000
BobDylan0450000
CharlieDaniels0020000
CharlieChaplin0004000
BobMarley0000300
AliceWolf0000020
CharlieByrd0030000


df.pivot { city }.groupBy { name }.default(0).min()
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
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

Step 3: 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
AliceCooper{ age: 15, weight: 54, isHappy: true }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }
BobDylan{ age: 0, weight: 0, isHappy: 0 }{ age: 45, weight: 87, isHappy: true }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }
CharlieDaniels{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 20, weight: 0, isHappy: false }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }
CharlieChaplin{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 40, weight: 0, isHappy: true }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }
BobMarley{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 30, weight: 68, isHappy: true }{ age: 0, weight: 0, isHappy: 0 }
AliceWolf{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 20, weight: 55, isHappy: false }
CharlieByrd{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 30, weight: 90, isHappy: true }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }{ age: 0, weight: 0, isHappy: 0 }