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

标签 python pandas dataframe tweepy

我使用 tweepy 存储了 twitter 的流数据。我从数据中提取了名称、语言、国家/地区和文本,并将其存储在一个 pandas 数据框中。 现在我想将性别字段添加到同一个数据帧中,这是我通过使用 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')

最佳答案

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

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

enter image description here

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

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

enter image description here

关于python - 使用 for 循环将数据添加到 pandas 数据帧,所有数据具有相同的键数据帧已经包含一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53436343/

相关文章:

python - python 中的 float 给出了错误的答案

python - 通过超链接通过 html 页面显示 xml 文件

python - 存储一对需要在 Python 中经常更新的值的最佳方法?

python - 以列表为元素对 pandas 列进行分组和聚合,并在列表中获取唯一值

python - 使用python删除excel文件中的NA行

r - NA 之前的第一个和最后一个值

Python数据帧: fill text in certain rows if other columns satisfied

python - 如何比较同一数据框的两列?

python - 从 pandas 数据框中匹配和提取值

python - 如何检查数据框(Pandas)中是否存在所有可能的列组合?