Найти тему
Властелин машин

Заполнение ячейки групповыми агрегациями

Рассмотрим, как заполнить пропуски в колонке групповыми значениями по не пустым ячейкам. Для примера возьмем таблицу:

Пусть мы хотим заполнить столбец дохода (revenue) групповыми медианами (по столбцу gr_id). Для этого можно в fillna использовать метод transform (о нем подробнее писал здесь):

-2

Групповые значения fillna заполняет только в пустые места.

Если transform кажется запутанным, то в качестве альтернативного способа можно получить групповые значения, затем присоединить их к таблице и заполнить пропуски из значений нового столбца. Первый шаг:

-3

теперь присоединяем и заполняем пропуски:

-4

Групповые значения можно получать и на основании нескольких столбцов. В этом случае вам пригодится метод apply. Для примера рассчитаем для df_cor групповое медианное значение отношения 'revenue' к 'gr_id':

-5

Теперь можно аналогично примеру выше приджойнить колонку к основной таблице и получить искомый столбец.

Операции заполнения групповыми статистиками достаточно распространены. Одним из типичных примеров является нахождение неизвестной жилой площади квартиры при имеющейся общей. Для этого сначала получаем среднее отношение жилой площади к общей по заполненным данным, а затем умножаем на него общую площадь.

-6