如何将字典列表转换为单行pandas DataFrame?
解决方法
要将多个单键字典的列表转换为单行DataFrame,核心是先把所有字典合并成一个完整的字典,再基于这个字典创建DataFrame。
方法1:循环合并字典(直观易懂)
import pandas as pd list_of_dicts = [{'key1': 'value1'}, {'key2':'value2'}] # 合并所有字典为一个大字典 combined_dict = {} for d in list_of_dicts: combined_dict.update(d) # 生成单行DataFrame df = pd.DataFrame([combined_dict]) print(df)
输出:
key1 key2 0 value1 value2
方法2:用itertools简化合并(更简洁)
如果列表较长,可借助itertools.chain来简化合并操作:
import pandas as pd from itertools import chain list_of_dicts = [{'key1': 'value1'}, {'key2':'value2'}] combined_dict = dict(chain.from_iterable(d.items() for d in list_of_dicts)) df = pd.DataFrame([combined_dict])
为什么你的原有方法无效?
- 直接用
pd.DataFrame(list_of_dicts)时,pandas会把每个字典视为一行数据,因此每行只有对应键有值,其他列自动填充NaN。 - 你的循环代码错误地将列值设为键名
k而非实际值v,且空DataFrame直接赋值列的方式无法正确生成行数据,正确的做法是先构造完整的字典再创建DataFrame。
内容的提问来源于stack exchange,提问作者Girolamo
相关产品推荐
相关产品推荐

