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

Add data to pandas dataframe using for loop with same key to all data dataframe already contains some data

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

tweets_data 包含所有数据,我正在使用名称解析器查找名字

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')

Pandas 允许您只添加字段。 取下图:

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

您可以像这样添加性别列:

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