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

将嵌套字典转为指定pandas DataFrame结果异常如何解决

问题根因

生成4行4列的结果不是reset_index操作单独导致的,错误从构造DataFrame的第一步就已经出现:

  • 你直接传入pd.DataFrame()的dict["TopKey"]是单层键值对字典,pandas默认会将字典键识别为列名、字典值识别为对应列的行值,这一步就会先生成1行4列的错误结构,后续的转置、重命名、二次转置全是在错误结构上做处理,自然得不到预期输出。
正确实现代码

不需要绕转置、reset_index的弯路,直接把内层字典的键值对转成元组列表传入构造器,指定列名即可,代码简洁且性能更好:

import pandas as pd

# 原始字典
raw_dict = {
   "TopKey":{
      "Key1":"Dictionary",
      "Key2":"String",
      "Key3":None,
      "Key4":"String"
   }
}

# 构造目标DataFrame
df = pd.DataFrame(
    raw_dict["TopKey"].items(),
    columns=["TopKey", "Value"]
)

运行后输出完全匹配预期结构:

TopKeyValue
Key1Dictionary
Key2String
Key3None
Key4String

备选写法:如果习惯用from_dict方法,也可以按索引方向构造后重置索引,效果一致:

df = pd.DataFrame.from_dict(raw_dict["TopKey"], orient="index", columns=["Value"])
       .rename_axis("TopKey")
       .reset_index()

这种写法比直接传items()冗余,仅作参考。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:51:31