एक dataframe कॉलम की जांच करता है, तो एक bool अगर सही / गलत, गलत था तो सिर्फ़ उन मूल्यों को जियोकोड को देखने के लिए

वोट
0

मैं [जियोकोडर अजगर एपीआई पुस्तकालय] का उपयोग कर रहा [1]। मैं बूलियन सही / गलत का एक पांडा dataframe स्तंभ के आधार पर करता है, तो मैं पहले से ही पता है कि विशेष रूप जिओकोड या नहीं की है। वहाँ मेरे मौजूदा कोड को संशोधित करने के लिए एक रास्ता के आधार पर जियोकोड करने अगर मैं इसे जिओकोड या नहीं किया है?

अभी सब यह होता है एक सच बयान मुद्रित है और फिर सब कुछ जियोकोड, बूलियन मेरे पास है की परवाह किए बिना। कृपया मदद करें!

यहाँ एक और तरीका यह डाल करने के लिए है:

मैं ट्वीट्स की एक dataframe है। यदि एक ट्वीट जिओकोड था, मैं में चिह्नित किया है कि एक सच के साथ ट्वीट (अगर यह जिओकोड किया गया है) या गलत (यदि यह जियोकोड नहीं किया गया है)। मुझे क्या करना कोशिश कर रहा हूँ की जाँच करता है, तो स्तंभ सच है, बाहर उस पंक्ति मुद्रित है। वरना अगर उस पंक्ति गलत है, तो यह मेरे पाश के लिए जियोकोड किए जाने में भेज देते हैं। मैं एक इनपुट के लिए मूल पोस्ट संपादित करेंगे।

यहाँ मेरी मौजूदा कोड है:

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