将pandas DataFrame的每一行转换为嵌套的JSON对象

时间:2017-08-07 23:56:32

标签: python json pandas

我的数据框有多个列,如[姓名,电子邮件,国家/地区,城市,类型,时间,x_completions],如下所示:

我想将此数据框的每一行转换为JSON对象,但将某些列分组为dict并将其称为user_info,如{ "name": "XYZ", "email": "XYZ@gml.com", "country": "USA", "city": "NYC"}

基本上,我想将每一行转换为以下结构的JSON对象:

{ "type":"Login", "user_id":"002203293023", "user_info":{ "name":"XYZ", "email":"XYZ@gml.com", "country":"USA", "city":"NYC" }, "other_info":{ "x_completed":"4" }, "time":1562932893 }

我不确定如何在JSON对象中将列组转换为dicts。关于SO的所有其他类似问题涉及某种形式的groupby操作,我认为我不需要这里。

1 个答案:

答案 0 :(得分:3)

使用列表推导来遍历数据框中的每一行。

[{
   "type": "Login",
   "user_id": row['user_id'],
   "user_info":{
      "name": row['name'],
      "email": row['email'],
      "country": row['country'],
      "city": row['city']
   },
   "other_info":{
      "x_completed": row['x_completions']
   },
   "time": row['time']
} for _, row in df.iterrows()]
相关问题