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

如何将含嵌套结构的Python字典转换为指定列的Pandas DataFrame

字典转指定格式Pandas DataFrame实现

直接按需求过滤无关字段后构造DataFrame即可,不需要额外复杂操作,完整代码如下:

import pandas as pd
import numpy as np

# 你的原始字典
raw_data = {'explanation': [{'name': 'NEIGHBORHOOD', 'value': 0.8458093122688197, 'error': 0.019018133634142273, 'feature_importance_per_iter': np.array([0.82261371, 0.82421628, 0.82483938, 0.83453245, 0.85977285,
       0.87912545, 0.8604959 , 0.84751409, 0.86720277, 0.83778024])}, {'name': 'YEAR', 'value': 0.4042242754940218, 'error': 0.015184773555021066, 'feature_importance_per_iter': np.array([0.39363194, 0.38509538, 0.39644517, 0.40923787, 0.41178442,
       0.37712897, 0.41998388, 0.40882951, 0.41056489, 0.42954073])}, {'name': 'LAND_SQFT', 'value': 0.13715830693229863, 'error': 0.008258893257281987, 'feature_importance_per_iter': np.array([0.13647464, 0.13960304, 0.14262865, 0.12864457, 0.14139102,
       0.15394684, 0.1435602 , 0.12734839, 0.13019752, 0.1277882 ])}, {'name': 'GROSS_SQFT', 'value': 0.11715647153867334, 'error': 0.00967317296447729, 'feature_importance_per_iter': np.array([0.11283082, 0.11049069, 0.1116555 , 0.10988616, 0.11597264,
       0.12351849, 0.10976599, 0.12771447, 0.14007404, 0.1096559 ])}, {'name': 'BLOCK', 'value': 0.1136614418126527, 'error': 0.008338972515966655, 'feature_importance_per_iter': np.array([0.10882301, 0.10517048, 0.10647254, 0.10115866, 0.12008553,
       0.11851731, 0.11532969, 0.11737344, 0.13123944, 0.11244431])}], 'runtime': 9.364779472351074, 'runtime_per_iter': [1.8957061767578125, 1.6298415660858154, 1.9324970245361328, 1.8747732639312744, 1.5690438747406006, 1.6631865501403809, 1.4750123023986816, 1.3634819984436035, 1.3420896530151367, 1.4080159664154053]}

# 过滤无关字段,只保留需要的三列,直接构造DataFrame
df = pd.DataFrame(
    [{'name': item['name'], 'value': item['value'], 'error': item['error']} for item in raw_data['explanation']]
)
  • 代码直接跳过外层的runtime、runtime_per_iter两个键,完全不会读取这两部分内容
  • 遍历explanation对应的列表时,只提取name、value、error三个字段,自动丢弃feature_importance_per_iter字段
  • 最终生成的DataFrame列顺序和要求完全一致,可直接使用

执行print(df)就能验证输出结果:

name     value     error
0  NEIGHBORHOOD  0.845809  0.019018
1          YEAR  0.404224  0.015185
2     LAND_SQFT  0.137158  0.008259
3    GROSS_SQFT  0.117156  0.009673
4         BLOCK  0.113661  0.008339

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:36:16