Pandas如何将json_normalize处理的JSON列与原DataFrame其余字段拼接
实现方法
你直接使用json_normalize内置的meta参数即可一步完成外层字段和归一化后events数据的合并,无需额外拼接操作,具体修改方案如下:
修改后的完整代码
import json import pandas as pd import urllib URL = "https://dsv.ihsmvals.com/holidays/v1.0/symbol/FX-GBP/startDate/20210101/endDate/20211231" response = urllib.request.urlopen(URL) text = response.read() json_data = json.loads(text) # 核心修改:新增meta和meta_prefix参数 df = pd.json_normalize( json_data, record_path='events', meta=['id', 'symbol', 'name', 'calType'], meta_prefix='root_' # 可选:避免和events内部的name字段重名冲突 ) df.to_csv("output.csv", index=False)
参数说明
record_path:指定需要展开的嵌套数组字段,对应你数据中的events字段meta:指定需要保留的外层JSON字段列表,填入你需要的id、symbol、name、calType即可meta_prefix:可选参数,因为你的events数组内部也有一个name字段,加前缀可以避免两个同名字段冲突,你可以根据需求调整前缀内容或者去掉该参数
如果你已经单独生成了events归一化的DataFrame和外层字段的DataFrame,也可以用pd.merge或者assign方法手动拼接,但用内置参数的方式效率最高、出错概率最低。
内容的提问来源于stack exchange,提问作者Naina
相关产品推荐
相关产品推荐

