如何将DataFrame转换为逐行字典构成的一维数组?
实现方案
直接用pandas内置的to_dict()方法就可以快速实现,不需要手写遍历逻辑,核心操作只需要1行代码:
- 假设你存储情感分析结果的DataFrame变量名为
df,传入参数'records'调用方法,就能直接得到「每行对应一个字典」的数组,结构和你给出的目标完全一致:
tweet_dict_list = df.to_dict('records')
可选调整
如果你的目标结构要求所有字段值都是字符串类型(和你示例里的value格式对齐),可以在转换前先把数值列转成字符串:
# 按需使用,将数值型的情感指标列转为字符串 df[['Subjectivity', 'Polarity']] = df[['Subjectivity', 'Polarity']].astype(str) tweet_dict_list = df.to_dict('records')
传入HTML渲染的补充说明
如果要把结果传到HTML页面做表格渲染:
- 用Flask、Django这类web框架的话,直接把
tweet_dict_list作为模板变量传入前端即可 - 如果需要把数据直接嵌入静态HTML的JS代码里,可以用标准库转成JSON字符串,避免格式错误:
import json # 生成可以直接在JS里解析的JSON字符串,ensure_ascii=False避免中文乱码 json_tweet_data = json.dumps(tweet_dict_list, ensure_ascii=False)
转换后拿你给出的样例数据测试,输出结构如下,完全符合要求:
[ { "Tweets": "This is a sad day. Reversing Roe v. Wade is an...", "Subjectivity": 0.833333, "Polarity": 0.0, "Sentiment": "Nutral" }, { "Tweets": "Through renewed investments in malaria and NTD...", "Subjectivity": 0.125, "Polarity": 0.0, "Sentiment": "Nutral" } ]
小提示:你当前数据里的情感标签
Nutral是拼写错误,正确的中性拼写为Neutral,如果后续要做分类统计建议提前修正,不影响本次转换操作。
内容的提问来源于stack exchange,提问作者Vatsalya Baluni
相关产品推荐
相关产品推荐

