Как заменить значения NaN в кадре данных на основе другого списка, соответствующего значениям? - PullRequest
0 голосов
/ 04 мая 2020

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

data = {'Town':  ['Leeds', 'Romley', 'St Peter Port', 'Dunstable','Chirk' ],
        'County': ['Yorkshire', np.nan, 'Guernsey', 'Bedfordshire', np.nan],
       'Country': ['UK', 'UK','UK','UK','UK']}
data = pd.DataFrame (data, columns = ['Town','County', 'Country'])

Некоторые названия округов отсутствуют. У меня есть еще один фрейм данных с полными городами Великобритании и соответствующими названиями округов. Пример:

town_list = {'Town': ['Ampthill', 'Bedford', 'Dunstable', 'Overton on dee', 'Rhosnesni', 'Chirk'],
            'County': ['Bedford', 'Bedford','Bedford','Wrexham','Wrexham', 'Wrexham']}
town_list = pd.DataFrame(town_list, columns=['Town', 'County'])

В основном мне нужно заменить значения NaN в кадре данных «data» следующим образом: 1. Проверка наличия NaN в «данных» 2. С соответствующим названием города в «data»: 3. Найти соответствующий город и графство в списке ссылок на массив данных town_list 4. Замените NaN на соответствующее название округа.

PS: я пробовал несколько вариантов и не смог найти ответ. У меня есть ощущение, что это можно сделать с помощью метода apply + lambda. Слияние не сработало, ни филлна. Длина фрейма данных составляет 81000 строк, 20% записей округов - NaN.

Спасибо

...