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

无法将字典转换为pandas DataFrame的技术求助

问题描述

我有如下结构的字典:
外层键为EDH3 Comdty、EDM3 Comdty,每个键对应的值是包含Tenor、Type、Rate的子字典。

目标是转换成如下格式的DataFrame:

TenorTypeRate
EDH3 Comdty310 DYFUTURE_RATE3.84000000
EDM3 Comdty401 DYFUTURE_RATE3.71999999

但执行pd.DataFrame(results.items())得到了不符合预期的输出:

EDH3 ComdtyEDM3 Comdty
0{'Tenor': '310 DY', 'Type': 'FUTURE_RATE', 'Rate': 3.84000000}{'Tenor': '401 DY', 'Type': 'CASH', 'Rate': 3.71999999}

期望将字典的键作为DataFrame的索引。

解决方案

直接使用pd.DataFrame.from_dict()方法并指定orient='index'参数,即可实现需求:

import pandas as pd

# 示例字典结构
results = {
    'EDH3 Comdty': {'Tenor': '310 DY', 'Type': 'FUTURE_RATE', 'Rate': 3.84000000},
    'EDM3 Comdty': {'Tenor': '401 DY', 'Type': 'CASH', 'Rate': 3.71999999}
}

# 转换为目标格式DataFrame
df = pd.DataFrame.from_dict(results, orient='index')
# 若不需要索引列名称,可执行该行
df.index.name = None

执行后得到的DataFrame与预期格式完全一致:

TenorTypeRate
EDH3 Comdty310 DYFUTURE_RATE3.84000000
EDM3 Comdty401 DYCASH3.71999999

原代码问题说明

pd.DataFrame(results.items())会将字典的键值对拆分为两列,子字典被当作单个单元格的内容,无法展开为列。而orient='index'参数会告诉pandas:将外层字典的键作为行索引,内层子字典的键作为列名,自动把子字典的内容映射到对应列中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:06:24