df.pivot { city }.maxFor { age and weight }
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
ageweightageweightageweightageweightageweightageweight
15544587309040null30682055


df.groupBy { name }.pivot { city }.median { age }
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
AliceCooper15.0nullnullnullnullnull
BobDylannull45.0nullnullnullnull
CharlieDanielsnullnull20.0nullnullnull
CharlieChaplinnullnullnull40.0nullnull
BobMarleynullnullnullnull30.0null
AliceWolfnullnullnullnullnull20.0
CharlieByrdnullnull30.0nullnullnull