使用for循环将数据添加到数据帧中,所有数据帧都使用相同的键,数据帧已经包含一些d

2024-04-26 10:51:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用tweepy存储了twitter的流数据,从数据中提取了姓名、语言、国家和文本,并存储在一个数据框中。 现在我想将gender字段添加到同一个数据帧中,这个数据帧是我通过for循环的GEt请求从gender api获得的。 如何将性别列添加到同一数据帧?你知道吗

tweets\u数据包含所有数据,我正在使用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')

Tags: 数据lambdatextnamemaplangfordata