Disponibilidad de una columna de trama de datos para ver si un bool si Verdadero / Falso, si es falso, sólo aquellos valores geocode

votos
0

Estoy utilizando el [librería API Python geocodificador] [1]. Tengo una columna de pandas trama de datos booleano verdadero / falso sobre la base de si ya tengo esa particular dirección geocodificada o no. ¿Hay una manera de modificar el código existente para codificar geográficamente en base a si lo tengo geocodificada o no?

En este momento lo único que hace es imprimir una declaración verdadera y luego códigos geográficos todo, sin tener en cuenta el booleano que tengo. ¡Ayuda por favor!

Aquí hay otra manera de decirlo:

Tengo una trama de datos de tweets. Si un Tweet se geocodifique, que he marcado con un Tweet True (si se ha codificado geográficamente) o Falso (si no se ha codificado geográficamente). Lo que estoy tratando de hacer es comprobar si la columna es cierto que imprima esa fila. Porque si esa fila es Falso, a continuación, enviarlo a mi bucle para ser codificada. Voy a editar el post original para una entrada.

Aquí está mi código exisiting:

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 

He aquí un ejemplo del archivo JSON como entrada:

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

}

Publicado el 12/06/2018 a las 19:31
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

La forma más sencilla es caminar sobre el conjunto de datos, y si no hay una coordsclave, agregarlo:

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

A continuación, convertirlo en una trama de datos.

Si ya lo tienes como una trama de datos:

df.loc[df['coords'] == False, 'coords'] = geocoder.osm(df['location_x']).latlang
Respondida el 12/06/2018 a las 20:10
fuente por usuario

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