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

如何将Pandas DataFrame列中嵌套JSON的USD段提取转换为新DataFrame

Pandas提取嵌套JSON中USD字段为结构化DataFrame方案

前置检查

首先确认你的quote列存储的是Python字典类型,而非字符串格式。如果是从csv等文件读取的,默认会被解析为字符串,需要先转换为字典:

import ast
import pandas as pd

# 转换字符串格式的JSON为Python字典
df['quote'] = df['quote'].apply(ast.literal_eval)

核心实现代码

你之前用pd.json_normalize没有得到预期结果,大概率是没有预先提取USD层级的对象,直接对整个嵌套字典做解析导致的。可以用两种方式实现需求:

方式1:先提取USD对象再生成DataFrame

# 提取每个元素的USD部分,直接转为结构化DataFrame
usd_df = pd.DataFrame(df['quote'].map(lambda x: x['USD']).tolist())

方式2:结合json_normalize实现

# 直接对USD层级的对象做规范化解析
usd_df = pd.json_normalize(df['quote'].str.get('USD'))

结果调整

两种方式输出的结果默认会保持原USD字段下的键顺序,如果你需要自定义列顺序,可以手动指定:

# 按需求调整列顺序
usd_df = usd_df[[
    'price', 
    'volume_24h', 
    'percent_change_1h', 
    'percent_change_24h', 
    'percent_change_7d', 
    'market_cap', 
    'last_updated'
]]

如果需要保留原DataFrame除了quote列之外的其他字段,可以直接拼接:

final_df = pd.concat([df.drop('quote', axis=1), usd_df], axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:45:02