df.groupBy { city }.pivot { name.lastName }.meanFor { 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

Step 2: PivotGroupBy
cityname
lastName
London{ Cooper: DataFrame [1 x 5], D..., ... }
Dubai{ Cooper: DataFrame [0 x 0], D..., ... }
Moscow{ Cooper: DataFrame [0 x 0], D..., ... }
Milan{ Cooper: DataFrame [0 x 0], D..., ... }
Tokyo{ Cooper: DataFrame [0 x 0], D..., ... }
null{ Cooper: DataFrame [0 x 0], D..., ... }

Output DataFrame: rowsCount = 6, columnsCount = 2
cityname
lastName
London{ Cooper: { age: 15.0, weight: 54.0 } }
Dubai{ Dylan: { age: 45.0, weight: 87.0 } }
Moscow{ Daniels: { age: 20.0, wei... }, B... }
Milan{ Chaplin: { age: 40.0, weight: NaN } }
Tokyo{ Marley: { age: 30.0, weight: 68.0 } }
null{ Wolf: { age: 20.0, weight: 55.0 } }


df.groupBy { city }.pivot { name.lastName }.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

Step 2: PivotGroupBy
cityname
lastName
London{ Cooper: DataFrame [1 x 5], D..., ... }
Dubai{ Cooper: DataFrame [0 x 0], D..., ... }
Moscow{ Cooper: DataFrame [0 x 0], D..., ... }
Milan{ Cooper: DataFrame [0 x 0], D..., ... }
Tokyo{ Cooper: DataFrame [0 x 0], D..., ... }
null{ Cooper: DataFrame [0 x 0], D..., ... }

Output DataFrame: rowsCount = 6, columnsCount = 2
cityname
lastName
London{ Cooper: { age: 15.0, weight: 54.0 } }
Dubai{ Dylan: { age: 45.0, weight: 87.0 } }
Moscow{ Daniels: { age: 20.0, wei... }, B... }
Milan{ Chaplin: { age: 40.0, weight: NaN } }
Tokyo{ Marley: { age: 30.0, weight: 68.0 } }
null{ Wolf: { age: 20.0, weight: 55.0 } }