Добавить данные в pandas dataframe, используя цикл for с одинаковым ключом ко всем данным. Dataframe уже содержит некоторые данные - PullRequest
0 голосов
/ 22 ноября 2018

Я сохранил потоковые данные твиттера, используя tweepy. Я извлек имя, язык, страну и текст из данных и сохранил их в одном кадре данных pandas.Теперь я хотел добавить поле пола к тому же фрейму данных, который я получаю из пола api по запросу GEt с помощью цикла for.Как я могу добавить этот гендерный столбец к тому же фрейму данных?

tweets_data содержит все данные, я использую nameparser, чтобы найти имя

tweets['text'] = map(lambda tweet: tweet['text'], tweets_data)
tweets['lang'] = map(lambda tweet: tweet['lang'], tweets_data)
tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweets_data)
tweets['name'] = map(lambda tweet: tweet['user']['name'], tweets_data)
tweets1=pd.DataFrame()
tweets1['name1'] = map(lambda tweet: tweet['user']['name'], tweets_data)
gender_data=[]
for i,v in tweets.iterrows(): 
    try:
        name1 = v['name']
        name = HumanName(name1)
        PARAMS = {'name':name['first']} 
        r = requests.get(url = URL, params = PARAMS) 
        data = r.json() 
        name = data['name'] 
        gender = data['gender'] 
        gender_data.append(gender)
        print(gender_data)
    except:
        continue
tweets1=pd.DataFrame(gender_data,columns=['gender'])
tweets.merge(tweets1,how='left', left_on='name', right_on='name1')

1 Ответ

0 голосов
/ 23 ноября 2018

Панды позволяет просто добавить поле.Возьмите следующий кадр:

my_frame = pd.DataFrame({'name': ['bob', 'jack']})

enter image description here

Вы можете добавить столбец рода следующим образом:

my_frame['gender'] = [1,2]

enter image description here

...