Ελέγξτε μια στήλη dataframe για να δείτε αν ένα bool αν Σωστό / Λάθος, αν Λάθος, γεωκωδικοποιήσει μόνο αυτές τις τιμές

ψήφοι
0

Είμαι χρησιμοποιώντας το [geocoder βιβλιοθήκη python API] [1]. Έχω μια στήλη pandas dataframe των Boolean True / False με βάση αν έχω ήδη ότι η συγκεκριμένη διεύθυνση γεωκωδικοποιημένο ή όχι. Είναι ένας τρόπος για να τροποποιήσετε υπάρχοντα κώδικα μου να γεωκωδικοποιήσει με βάση αν έχω γεωκωδικοποιημένο ή δεν υπάρχει;

Αυτή τη στιγμή το μόνο που κάνει είναι να εκτυπώσετε μια αληθινή δήλωση και στη συνέχεια γεωκωδικοποιεί τα πάντα, ανεξάρτητα από το boolean που έχω. Βοήθεια παρακαλώ!

Εδώ είναι ένας άλλος τρόπος για να το πω:

Έχω ένα dataframe των Tweets. Αν ένα tweet ήταν γεωκωδικοποιημένα, έχω σημειωθεί ότι Tweet με μία True (αν έχει γεωκωδικοποιημένο) ή Λάθος (Αν δεν έχει γεωκωδικοποιημένο). Αυτό που προσπαθώ να κάνω είναι να ελέγξετε αν η στήλη είναι αλήθεια εκτυπώσετε αυτή τη γραμμή. Αλλιώς, αν η σειρά είναι False, στη συνέχεια, να το στείλετε στο μου για το βρόχο που θα γεωκωδικοποιηθούν. Θα επεξεργαστείτε την αρχική θέση για την είσοδο.

Εδώ είναι ο κωδικός υπάρχον μου:

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 

Εδώ είναι ένα παράδειγμα του αρχείου JSON ως είσοδος:

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

}

Δημοσιεύθηκε 12/06/2018 στις 19:31
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Ο απλούστερος τρόπος είναι να περπατήσει πάνω από το σύνολο δεδομένων σας, και αν δεν υπάρχει coordsτο κλειδί, να το προσθέσετε:

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

Στη συνέχεια, να το μετατρέψει σε ένα dataframe.

Αν το έχετε ήδη ως dataframe:

df.loc[df['coords'] == False, 'coords'] = geocoder.osm(df['location_x']).latlang
Απαντήθηκε 12/06/2018 στις 20:10
πηγή χρήστη

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