You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取Tweepy返回DataFrame中JSON字段的screen_name并转为DataFrame

问题原因

  • 变量y仅保留最后一个值:你在循环中每次执行y = [j.screen_name]都会覆盖y的原有取值,只有打印操作是每次循环实时输出,所以循环结束后y只存储最后一次迭代的结果
  • 转DataFrame报错:首先y = j.[screen_name]存在语法错误(多余的点号),其次单个值/单层列表传入DataFrame构造函数的方式不符合要求,就会触发你遇到的报错

解决方法

不需要修改Tweepy抓取代码,直接处理现有DataFrame即可,有两种实现方式:

方式1:先收集全量screen_name再转DataFrame

先初始化空列表存储所有用户名,避免循环中覆盖取值,同时可以删掉你原来冗余的iterrows和嵌套循环:

screen_names = []
# 直接遍历user列即可,不需要冗余的两层循环
for user_obj in df['user']:
    screen_names.append(user_obj.screen_name)

# 生成单列DataFrame,可自定义列名
h = pd.DataFrame(screen_names, columns=['username'])

方式2:pandas向量化操作(更简洁,不需要手写循环)

直接对user列使用apply方法提取字段,一步转DataFrame:

h = df['user'].apply(lambda x: x.screen_name).to_frame(name='username')

内容的提问来源于stack exchange,提问作者ddinfiwis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:48:03