Pandas имеет специальный метод для заполнения значений NA:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html
Вы можете создать dict со значениями для поля "host_name", используя " Соседство_группа "значения в качестве ключей и сделать это:
host_dict = {'Bronx': 'Vie', 'Manhattan': 'Sonder (NYC)'}
airbnb['host_name'] = airbnb['host_name'].fillna(value=airbnb[airbnb['host_name'].isna()]['neighbourhood_group'].map(host_dict))
airbnb['host_name'] = airbnb['host_name'].fillna("Michael")
аргумент" значение "здесь может быть Серия значений.
Итак, прежде всего, мы создаем Ряд со значениями "neighbourhood_group", которые соответствуют нашим пропущенным значениям, используя эту часть:
neighbourhood_group_series = airbnb[airbnb['host_name'].isna()]['neighbourhood_group']
Затем, используя функцию map вместе с "host_dict", мы получаем Series со значениями, которые мы хочу вменять:
neighbourhood_group_series.map(host_dict)
Наконец, мы просто вменяем во все другие ячейки NA какое-то значение по умолчанию, в нашем случае "Michael".