Prüfen Sie den Datenrahmen Spalte zu sehen, ob ein Bool, wenn True / False, wenn False geocodieren nur die Werte,

stimmen
0

Ich bin mit der [Geocoder Python-API-Bibliothek] [1]. Ich habe eine Pandas Datenrahmen Spalt boolean True / False basierend auf, wenn ich bereits, dass bestimmte Adresse geocodiert oder nicht. Gibt es eine Möglichkeit, meine vorhandenen Code zu modifizieren geocodieren basierend auf, wenn ich es oder nicht geocodiert haben?

Gerade jetzt alle es tut, ist eine wahre Aussage drucken und dann alles geocodiert, unabhängig von der boolean ich habe. Hilfe bitte!

Hier ist eine andere Weise zu setzen:

Ich habe einen Datenrahmen von Tweets. Wenn ein Tweet geocodiert wurde, habe ich mit einer Wahr, dass Tweet markiert (wenn es geocodiert wurde) oder False (wenn es wurde nicht geocodiert). Was ich versuche zu tun ist, zu überprüfen, ob die Spalte True ist, aus dieser Zeile drucken. Else, wenn diese Zeile falsch ist, dann schicken Sie es in meiner for-Schleife geocodiert werden. Ich werde den Original-Beitrag für eine Eingabe bearbeiten.

Hier ist mein exisiting Code:

for d in tweets2['Exist']:
    if d is True:
        print d
    elif d.any() is False:
        coord = []
        for index, row in tweets2.iterrows():
            print(row['location_x'])
            time.sleep(1.01)
            g = geocoder.osm(row['location_x'])
            geo = g.latlng
            print(geo)
            coord.append(geo)
    else:
        pass 

Hier ist ein Beispiel für die JSON-Datei als Eingabe:

{
data: [
    {
        user_id: 3299796214, 
        features: {
            screen_name: SaveOurSparrows, 
            text: Details confirmed for inquiry into #INEOS #Derbyshire #Fracking site! \n\nAnti Fracking, #keepitintheground #wesaidno\u2026, 
            location: West Pennine Moors AONB SSSI, 
            tweets: 3, 
            geo_type: User location, 
            primary_geo: West Pennine Moors AONB SSSI, 
            id: 3299796214, 
            name: SaveOurSparrows,
            Exist: True
        }
    }, 
    {
        user_id: 3302831409, 
        features: {
            screen_name: ProjectLower, 
            text: Cutting down on energy costs is the dream for many #smallbusinesses, but to put ideas into practice isn\u2019t always ea\u2026, 
            location: Manchester, 
            tweets: 1, 
            geo_type: User location, 
            primary_geo: Manchester, 
            id: 3302831409, 
            name: Project Lower,
            Exist: False
        }
    }, 
    {
        user_id: 2205129714, 
        features: {
            screen_name: AmbCanHaiti, 
            text: Petit-d\u00e9jeuner causerie le mercredi 28 mars 2018 \u00e0 l'h\u00f4tel Montana sur l'\u00e9nergie #micror\u00e9seaux #microgrids\u2026, 
            location: Haiti, 
            tweets: 1, 
            geo_type: User location, 
            primary_geo: Haiti, 
            id: 2205129714, 
            name: Canada en Ha\u00efti,
            Exist: False
        }
    }
 ]

}

Veröffentlicht am 12/06/2018 um 19:31
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Der einfachste Weg ist über Ihren Datensatz zu gehen, und wenn es keine coordsSchlüssel, fügen Sie es:

for data in your_data_set['data']:
    data['coords'] = data.setdefault('coords',  geocoder.osm(data'location_x']).latlang)

Dann wandeln sie in einem Datenrahmen.

Wenn Sie bereits haben es als Datenrahmen:

df.loc[df['coords'] == False, 'coords'] = geocoder.osm(df['location_x']).latlang
Beantwortet am 12/06/2018 um 20:10
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more