如何将多个列表中的字符串添加到字典并生成目标结构化数据
问题原因分析
- 原有代码错误点:
- 只遍历了
name_row列表,没有关联rating_row和title_row对应索引位置的元素 row.get(name)是从空字典row里取键为name的值,该键本来就不存在,所以返回None- 字典
row是在循环外定义的,每次循环都会覆盖同一个字典的内容,最后追加到rows里的只有最后一次修改的同一个字典对象
- 只遍历了
正确实现方案
方案1:按索引遍历构造字典列表
如果你需要先构造字典列表再转DataFrame,可以用如下写法:
import pandas as pd name_row = ['Bob', 'Jerry', 'Will'] rating_row = ['4.0', '2.5', '3.7'] title_row = ['Great', 'Okay', 'Nice'] # 修正你原拼写错误Geat→Great rows = [] # 按索引遍历三个长度一致的列表 for i in range(len(name_row)): row = { 'Names': name_row[i], 'Rating': rating_row[i], 'Title': title_row[i] } rows.append(row) df = pd.DataFrame(rows)
运行后df的输出就和你预期的表格结构完全一致。
方案2:更简洁的直接构造方法
pandas支持直接传入字典构造DataFrame,不需要手动循环:
import pandas as pd name_row = ['Bob', 'Jerry', 'Will'] rating_row = ['4.0', '2.5', '3.7'] title_row = ['Great', 'Okay', 'Nice'] df = pd.DataFrame({ 'Names': name_row, 'Rating': rating_row, 'Title': title_row })
这种写法代码量更少,执行效率也更高。
内容的提问来源于stack exchange,提问作者Harry Kim
相关产品推荐
相关产品推荐

