使用for循环将数据添加到pandas数据框,并使用相同的键将所有数据数据框包含相同的数据

时间:2018-11-22 18:15:07

标签: python pandas dataframe tweepy

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

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 :(得分:0)

Pandas允许您仅添加字段。 采取以下框架:

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

enter image description here

您可以添加性别列,如下所示:

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

enter image description here