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

如何从含嵌套字典的对象生成指定格式的Pandas DataFrame?

问题描述

我尝试通过以下代码从包含嵌套字典的get_commission对象创建Pandas DataFrame:

import pandas as pd
get_commission = {'info': {'symbol': 'ETHBTC', 'makerCommission': '0.001', 'takerCommission': '0.001'}, 'symbol': 'ETH/BTC:BTC', 'maker': 0.001, 'taker': 0.001} 
commission = pd.DataFrame(get_commission)

执行后得到的输出为:

info       symbol maker  taker
makerCommission   0.001  ETH/BTC:BTC    NaN  0.001
symbol           ETHBTC  ETH/BTC:BTC    NaN  0.001
takerCommission   0.001  ETH/BTC:BTC    NaN  0.001

我希望得到如下格式的DataFrame:

symbol        maker  taker
ETH/BTC:BTC  0.001  0.001

请问该如何实现?

解决方案

直接提取字典中无需嵌套的目标字段,再构造DataFrame即可,以下是两种实用方法:

方法一:手动筛选目标字段

提取symbol、maker、taker三个字段组成新字典,注意用列表包裹值以生成单行数据:

import pandas as pd
get_commission = {'info': {'symbol': 'ETHBTC', 'makerCommission': '0.001', 'takerCommission': '0.001'}, 'symbol': 'ETH/BTC:BTC', 'maker': 0.001, 'taker': 0.001}

data = {
    'symbol': [get_commission['symbol']],
    'maker': [get_commission['maker']],
    'taker': [get_commission['taker']]
}
commission = pd.DataFrame(data)
print(commission)

方法二:过滤嵌套字段info

用字典推导式剔除info键,剩余字段直接构造DataFrame:

import pandas as pd
get_commission = {'info': {'symbol': 'ETHBTC', 'makerCommission': '0.001', 'takerCommission': '0.001'}, 'symbol': 'ETH/BTC:BTC', 'maker': 0.001, 'taker': 0.001}

filtered_data = {k: [v] for k, v in get_commission.items() if k != 'info'}
commission = pd.DataFrame(filtered_data)
print(commission)

两种方法运行后都会输出目标格式:

symbol  maker  taker
0  ETH/BTC:BTC  0.001  0.001

如果不需要默认索引列,可添加index=False参数:

commission = pd.DataFrame(filtered_data, index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:31:14