Как заполнить отсутствующее географическое местоположение в наборах данных?

У меня есть набор данных с отсутствующими именами и координатами географического местоположения одновременно. Я хочу заполнить пробелы, чтобы продолжить анализ данных в будущем. Набор данных собран из твиттера, поэтому это не созданные данные, но данные получены именно так, и мне нужно как-то заполнить пробелы и продолжить дальнейший анализ.

Вариант 1: я могу использовать любой из userLocation и userTimezone, чтобы найти coordinates

Вход:

userLocation,   userTimezone,   Coordinates,
India,          Hawaii,    {u'type': u'Point', u'coordinates': [73.8567, 18.5203]}
California,     USA     
          ,     New Delhi,  
Ft. Sam Houston,Mountain Time (US & Canada),{u'type': u'Point', u'coordinates': [86.99643, 23.68088]}
Kathmandu,Nepal, Kathmandu, {u'type': u'Point', u'coordinates': [85.3248024, 27.69765658]}

Ожидаемый результат

userLocation,  userTimezone,   Coordinates_one, Coordinates_two
    India,          Hawaii,         73.8567,         18.5203
    California,     USA,            [fill this]      [fill this]
    [Fill this],    New Delhi,      [fill this]      [fill this]
    Ft. Sam Houston,Mountain Time (US & Canada), 86.99643, 23.68088
    Kathmandu,      Kathmandu,      85.3248024,      27.69765658

Можно ли написать скрипт на Python или pandas, чтобы заполнить отсутствующие имена и координаты местоположений одновременно с правильным форматированием вывода?

Я понимаю, что у Python или Pandas нет никакого волшебного пакета, но было бы полезно начать с чего-то.

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


person Sitz Blogz    schedule 16.05.2016    source источник
comment
Я думаю, вы должны проверить pandas fillna() И Работа с отсутствующими данными   -  person Leo    schedule 16.05.2016


Ответы (1)


Как уже упоминалось в вашей ГИС, не существует волшебного способа получить что-то точное, но я бы поэкспериментировал с геопия. Я предполагаю, что вы можете перебрать недостающие данные, пример кода и вывод, демонстрирующий географию:

from geopy.geocoders import Nominatim

geolocator = Nominatim() 

for location in ('California USA', 'New Delhi'):
    geoloc = geolocator.geocode(location)
    print location, ':', geoloc, geoloc.latitude, geoloc.longitude

Выход:

California USA : California, United States of America 36.7014631 -118.7559974 
New Delhi : New Delhi, New Delhi District, Delhi, India 28.6138967 77.2159562

Вы можете попробовать различные службы геокодирования (см. документацию по геокодированию), некоторые из этих служб может принимать дополнительные аргументы, например. номинация может содержать ключевое слово «country_bias», которое будет смещать результаты к данной стране.

person oystein    schedule 16.05.2016
comment
Благодарю вас ! Что-то, с чего можно начать, это здорово. - person Sitz Blogz; 16.05.2016