Zkontrolujte, zda sloupec datového rámce, aby zjistil, zda v případě, bool pravda / nepravda, pokud FALSE, geocode pouze ty hodnoty,

hlasů
0

Používám [Geocoder knihovny Python API] [1]. Mám pandy datovém sloupec true / false založené na tom, zda už mám tento konkrétní adresa geokódována nebo ne. Existuje způsob, jak změnit svůj stávající kód geocode založené na tom, zda jsem to geokódována, nebo ne?

Právě teď vše, co dělá, je vytisknout pravdivé tvrzení a pak geokódů všechno, bez ohledu na boolean mám. Pomoc prosím!

Tady je další způsob, jak si to:

Mám datový rámec tweetů. Je-li Tweet byla geokódována jsem označen, že pípání s True (bylo-li geokódů) nebo False (pokud nebylo geokódována). Co se snažím udělat, je zkontrolovat, zda je sloupec Je pravda, že vytisknout daném řádku. Else if, že řádek je False, pak ho poslat do mého pro smyčky, které mají být geokódována. Budu upravovat původní místo pro vstup.

Zde je můj existujícím kód:

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 

Zde je příklad souboru JSON jako vstup:

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

}

Položena 12/06/2018 v 19:31
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Nejjednodušší způsob je jít přes datovou sadu, a není-li coordsklíč, přidejte jej:

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

Potom převést jej do datového rámce.

Pokud už máte to jako datového rámce:

df.loc[df['coords'] == False, 'coords'] = geocoder.osm(df['location_x']).latlang
Odpovězeno 12/06/2018 v 20:10
zdroj uživatelem

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