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

如何将循环生成的多个独立字典转换为Pandas DataFrame?

问题解答

1. 当前代码无法生成目标列表的原因

你的代码核心问题有两个:

  • 字典对象重复引用:如果data = {}定义在外层循环外,每次循环只是修改同一个字典的键值,再把这个字典的引用添加到列表里,最终列表里的所有元素都是同一个字典,最后会被最后一次循环的结果覆盖;如果ls_dict = []也定义在外层循环内,那每次外层循环都会重新创建一个新列表,导致生成多个单字典的小列表,而非累积成一个包含所有字典的大列表。
  • 内层循环无意义:你的keys = [name]和values = [number]都是单元素列表,内层for i in range(len(keys))只会执行一次,完全没必要用这个循环,直接赋值字典键值对即可。

2. 更优的DataFrame转换方法

方法一:直接收集列表(推荐,效率更高)

不需要构建字典列表,直接在外层循环中分别收集name和number到两个列表,最后一次性生成DataFrame:

import pandas as pd

# 初始化空列表,放在外层循环之前
user_list = []
user_number_list = []

# 你的外层循环逻辑,每次获取name和number
# for ...:
#     name = ...  # 从外层循环获取的用户名
#     number = ...  # 从外层循环获取的用户编号

user_list.append(name)
user_number_list.append(number)

# 生成DataFrame
df = pd.DataFrame({
    'User': user_list,
    'User Number': user_number_list
})

方法二:正确构建字典列表

如果坚持用字典列表的方式,要确保每次外层循环创建新的字典,且列表定义在外层循环外:

import pandas as pd

# 初始化总列表,放在外层循环之前
total_dict_list = []

# 你的外层循环逻辑
# for ...:
#     name = ...
#     number = ...

# 每次循环创建新字典并添加到总列表
single_dict = {'User': name, 'User Number': number}
total_dict_list.append(single_dict)

# 生成DataFrame
df = pd.DataFrame(total_dict_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:12:27