首页 > 解决方案 > 使用原始数据框从包含 JSON 数据的列中提取数据

问题描述

我的数据框df如下:

   API     sp_name               sp_input_params
getData   analytics.sp_1        {'req_url_query_params': [['@scroll_index', 'index']], 
                                 'req_body_params': [['@event_type_id', 'event_type_id']]}
getParam  analytics.sp_2        {'req_url_query_params': [['@athlete_guid', 'athlete_guid']], 
                                 'req_body_params': []}

现在我想规范化这个领域sp_input_params。实现这一目标的方法之一

df_final = pd.json_normalize(df['sp_input_params'])

但上面不会保留其他两列,即APIsp_name。我想让它们与标准化的保持一致。

对此有任何线索吗?

标签: pythonjsonpandas

解决方案


我认为您可以使用 if 默认索引 in df.index

df_final = df.join(pd.json_normalize(df.pop('sp_input_params')))

如果没有,请使用:

df_final = df.join(pd.json_normalize(df.pop('sp_input_params')).set_index(df.index))

推荐阅读