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

如何将嵌套JSON中各stock的price字段分别生成独立pandas DataFrame

解决方法

你之前将整个stocks数组传入json_normalize,所以所有股票的价格数据会被合并到同一个DataFrame中。想要直接生成两个独立的DataFrame,单独处理stocks数组的每个元素即可:

方案1:按索引单独生成对应DataFrame

直接指定stocks数组的下标,分别调用json_normalize处理每个元素的price字段:

import pandas as pd

# 生成第一个元素对应的df1(TSLA)
df1 = pd.json_normalize(data['stocks'][0], record_path='price')
# 生成第二个元素对应的df2(AMZN)
df2 = pd.json_normalize(data['stocks'][1], record_path='price')

运行后df1和df2的结构完全符合你的预期,仅保留date和close两列。

方案2:批量生成所有股票的DataFrame列表

如果stocks数组元素数量不固定,可以用列表推导式一次性生成所有对应DataFrame的集合:

dfs = [pd.json_normalize(stock, record_path='price') for stock in data['stocks']]
# 取第一个股票数据:dfs[0],第二个:dfs[1],以此类推

方案3:从你已生成的合并DataFrame拆分

如果你已经生成了带symbol字段的合并DataFrame,也可以直接拆分后删除多余字段:

# 拆分得到df1
df1 = df[df['symbol'] == 'TSLA'].drop('symbol', axis=1).reset_index(drop=True)
# 拆分得到df2
df2 = df[df['symbol'] == 'AMZN'].drop('symbol', axis=1).reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:09:03