2016-05-16 7 views
-2

Ich habe eine Menge von Datensätzen mit fehlenden Geo-Location-Namen und Koordinaten gleichzeitig. Ich möchte die Lücken füllen, damit ich mit der zukünftigen Analyse der Daten fortfahren kann. Der Datensatz wird von Twitter geerntet, also sind es keine erzeugten Daten, aber so sind die Daten gekommen und ich muss die Lücken irgendwie füllen und mit der zukünftigen Analyse fortfahren.Wie fülle ich fehlende Geo-Positionen in Datensätzen?

Option 1: Ich kann entweder die userLocation und userTimezone verwenden, um den coordinates

Eingang zu finden:

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]} 

Erwartete Ausgabe

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 

Ist es möglich, ein Skript zu schreiben, in Python oder Pandas, um die fehlenden Ortsnamen und -koordinaten gleichzeitig zu füllen und die Ausgabe korrekt zu formatieren?

Ich verstehe Python oder Pandas hat kein magisches Paket, aber etwas zu beginnen wäre hilfreich.

Ich habe diese Frage auf GIS Abschnitt gestellt, aber nicht viel Hilfe drüben. Dies ist das erste Mal, dass ich mit Geo-Standortdatensätzen arbeite und ich habe keine Ahnung, wie ich anfangen soll. Wenn die Frage nicht passend ist, dann kommentieren Sie bitte, um sie zu löschen, anstatt nach unten abzustimmen.

+1

Ich denke, Sie müssen die [pandas fillna()] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html) Und die [Arbeiten mit fehlenden Daten ] (http://pandas.pydata.org/pandas-docs/stable/missing_data.html) – Leo

Antwort

1

Wie andere auf Ihrer GIS Frage erwähnt haben, gibt es keine magische Möglichkeit, etwas genaues zu produzieren, aber ich würde mit geopy spielen. Ich gehe davon aus Sie in der Lage sind, eine Schleife über Ihre fehlenden Daten, Beispielcode und Ausgabe demonstriert geopy:

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 

Ausgang:

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

Sie möchten können verschiedene geocodiert Dienste, um zu versuchen (siehe geopy doc), einige dieser Service kann zusätzliche Argumente, z Die Nominierung kann das Schlüsselwort "country_bias" verwenden, das die Ergebnisse für das jeweilige Land beeinflusst.

+0

Vielen Dank! Etwas zu beginnen ist großartig. –

Verwandte Themen