使用pandas.json_normalize展开JSON列时如何保留原表其他列
实现方法
你可以直接将原始表需要保留的列与json_normalize的输出结果按列拼接即可,两者行数完全一致,行索引天然对应,不会出现错位问题:
import pandas as pd df_final = pd.concat( [df[["API", "sp_name"]], pd.json_normalize(df["sp_input_params"])], axis=1 )
执行后得到的df_final会同时保留原表的API、sp_name列,以及展开后的req_url_query_params、req_body_params两列,行顺序和原始表完全对应。
进阶可选方案
如果你后续需要进一步将sp_input_params内部的数组成员展开为多行,可以直接在json_normalize中通过meta参数指定要保留的原始列,无需额外拼接:
# 示例:展开req_url_query_params数组为多行,同时保留原有API、sp_name列 df_final = pd.json_normalize( df.to_dict("records"), record_path=["sp_input_params", "req_url_query_params"], meta=["API", "sp_name"], record_prefix="url_query_param_" )
内容的提问来源于stack exchange,提问作者pythondumb
相关产品推荐
相关产品推荐

