Fill NaN: медиана и мода

EasyPython
05:00
Лучше работает на десктопе
Pandasfillnadata-cleaningNaN

Дана таблица (словарь) с пропущенными значениями (None).

Заполните пропуски:
- Числовые колонки — медианой колонки
- Строковые колонки — модой (самым частым значением) колонки

Сигнатура

def fill_missing(data: dict) -> list[dict]:

Примеры

data = {"name": ["Alice","Bob","Charlie","Alice"], "age": [25,None,30,28], "city": ["Moscow","Moscow",None,"SPb"]}
fill_missing(data) → [
    {"name": "Alice", "age": 25, "city": "Moscow"},
    {"name": "Bob", "age": 28, "city": "Moscow"},
    {"name": "Charlie", "age": 30, "city": "Moscow"},
    {"name": "Alice", "age": 28, "city": "SPb"}
]

Объяснение: age: median([25,30,28]) = 28. city: mode = Moscow (2 раза).
Числа возвращать как int если они целые.

Примеры

Пример 1

Вход:
data = {"name":["Alice","Bob","Charlie","Alice"],"age":[25,null,30,28],"city":["Moscow","Moscow",null,"SPb"]}
Выход:[{"name":"Alice","age":28,"city":"Moscow"},{"name":"Bob","age":28,"city":"Moscow"},{"name":"Charlie","age":30,"city":"Moscow"},{"name":"Alice","age":28,"city":"SPb"}]

age median=28, city mode=Moscow

Пример 2

Вход:
data = {"x":["a",null,"a","b"],"y":[1,2,null,3]}
Выход:[{"x":"a","y":1},{"x":"a","y":2},{"x":"a","y":2},{"x":"b","y":3}]

y median=2, x mode=a

Консоль
Нажмите Run или Ctrl+Enter для запуска