Я делаю некоторую очистку данных о недвижимости и столкнулся с этой проблемой новичка, которая, на удивление, кажется, что я не могу решить самостоятельно.
У меня есть этот кадр данных, который имеет значения nan в столбцах lat и lon.Я могу изобразить почти правильные значения, вводя среднее значение широты и долготы для данной окрестности.
Это пример, фактический DF имеет более 20 тыс. Строк.
lat lon neighborhood
-34.62 -58.50 Monte Castro
-34.63 -58.36 Boca
nan nan San Telmo
Я создал два словаря со значениями lat и lon для каждой окрестности со следующим кодом:
neighborhood_lat = []
neighborhood_lon = []
for neighborhood in df['l3'].unique():
lat = df[((df['l3']==neighborhood) & (df['lat'].notnull()))].mean().lat
lon = df[((df['l3']==neighborhood) & (df['lon'].notnull()))].mean().lon
neighborhood_lat.append({neighborhood: lat})
neighborhood_lon.append({neighborhood: lon})
Это часть одного из этих диктов:
neighborhood_lat
[{'Mataderos': -34.65278757721805},
{'Saavedra': -34.551813882357166},
{nan: nan},
{'Boca': -34.63204552441155},
{'Boedo': -34.62695442446412},
{'Abasto': -34.603728937455315},
{'Flores': -34.62757516061659},
{'Nuñez': -34.54843158034983},
{'Retiro': -34.595564030955934},
{'Almagro': -34.60692879236826},
{'Palermo': -34.58274909271148},
{'Belgrano': -34.56304387233704},
{'Recoleta': -34.592081482406854},
{'Balvanera': -34.608665174550694},
{'Caballito': -34.61749059613885}
Затем я пытаюсь заполнить эти словари, но не могу понять, как задать условие дляfillna, поэтому он заполняет лат и долг в соответствии с широтой и долготой соседства.
Ожидаемые результаты
lat lon neighborhood
-34.62 -58.50 Monte Castro
-34.63 -58.36 Boca
(mean lat of neighborhood) (mean lon of neighborhood) San Telmo
Спасибо за вашу помощь.