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

如何用Pandas提取equity和unrealisedPnl字段创建DataFrame

解决Pandas提取嵌套字典指定字段的问题

问题根源

你之前直接将整个顶层字典传入pd.DataFrame(),Pandas会自动解析外层的BTC、ETH、free、used等键,自然拿不到嵌套在info.result.list里的目标字段。

解决方案步骤

  1. 精准定位目标数据:从原始字典中提取嵌套的列表info.result.list,这才是包含equity和unrealisedPnl的核心数据集合。
  2. 创建DataFrame并筛选列:基于提取的列表生成DataFrame,直接指定需要保留的字段。
  3. 数据类型转换:将字符串格式的数值转为浮点型,方便后续计算或分析。

完整代码示例

import pandas as pd

# 替换为你的完整原始数据字典
data = {
    'info': {'retCode': '0', 'retMsg': 'OK', 'result': {'list': [
        {'coin': 'BTC', 'equity': '0.05461474', 'unrealisedPnl': '-0.04489672'},
        {'coin': 'ETH', 'equity': '0.92655684', 'unrealisedPnl': '0.00551504'},
        {'coin': 'XRP', 'equity': '11.73802937', 'unrealisedPnl': '0'},
        {'coin': 'USDT', 'equity': '913.78491494', 'unrealisedPnl': '-4228.19957193'},
        # 其他币种数据...
    ]}},
    # 外层的BTC、ETH等键...
}

# 1. 提取嵌套列表中的目标数据
target_list = data['info']['result']['list']

# 2. 创建DataFrame并选择需要的字段
df = pd.DataFrame(target_list)[['coin', 'equity', 'unrealisedPnl']]

# 3. 将字符串数值转为浮点型
df['equity'] = df['equity'].astype(float)
df['unrealisedPnl'] = df['unrealisedPnl'].astype(float)

# 可选:过滤掉equity为0的无效币种
df = df[df['equity'] != 0]

print(df)

输出结果示例

coin     equity  unrealisedPnl
0   BTC   0.054615      -0.044897
1   ETH   0.926557       0.005515
3   XRP  11.738029       0.000000
4  USDT 913.784915   -4228.199572

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:33:29