当前位置:  开发笔记 > 编程语言 > 正文

嵌套Json到pandas DataFrame具有特定格式

如何解决《嵌套Json到pandasDataFrame具有特定格式》经验,为你挑选了1个好方法。

我需要在pandas DataFrame中以特定格式格式化Json文件的内容,以便我可以运行pandassql来转换数据并通过评分模型运行它.

file = C:\ scoring_model\json.js('file'的内容如下)

{
"response":{
  "version":"1.1",
  "token":"dsfgf",
   "body":{
     "customer":{
         "customer_id":"1234567",
         "verified":"true"
       },
     "contact":{
         "email":"mr@abc.com",
         "mobile_number":"0123456789"
      },
     "personal":{
         "gender": "m",
         "title":"Dr.",
         "last_name":"Muster",
         "first_name":"Max",
         "family_status":"single",
         "dob":"1985-12-23",
     }
   }
 }

我需要数据框看起来像这样(显然在同一行上的所有值,尝试尽可能地格式化这个问题):

version | token | customer_id | verified | email      | mobile_number | gender |
1.1     | dsfgf | 1234567     | true     | mr@abc.com | 0123456789    | m      |

title | last_name | first_name |family_status | dob
Dr.   | Muster    | Max        | single       | 23.12.1985

我已经查看了有关此主题的所有其他问题,尝试了各种方法将Json文件加载到pandas中

`with open(r'C:\scoring_model\json.js', 'r') as f:`
    c = pd.read_json(f.read())

 `with open(r'C:\scoring_model\json.js', 'r') as f:`
    c = f.readlines()

在这个解决方案中尝试了pd.Panel()Python Pandas:如何在数据帧的列中拆分排序的字典

来自[yo = f.readlines()]的数据帧结果考虑尝试基于("")拆分每个单元格的内容,并找到一种方法将拆分内容放入不同的列但到目前为止没有运气.非常感谢您的专业知识.先感谢您.



1> Andy Hayden..:

如果你将整个json作为dict(或列表)加载,例如使用json.load,你可以使用json_normalize:

In [11]: d = {"response": {"body": {"contact": {"email": "mr@abc.com", "mobile_number": "0123456789"}, "personal": {"last_name": "Muster", "gender": "m", "first_name": "Max", "dob": "1985-12-23", "family_status": "single", "title": "Dr."}, "customer": {"verified": "true", "customer_id": "1234567"}}, "token": "dsfgf", "version": "1.1"}}

In [12]: df = pd.io.json.json_normalize(d)

In [13]: df.columns = df.columns.map(lambda x: x.split(".")[-1])

In [14]: df
Out[14]:
        email mobile_number customer_id verified         dob family_status first_name gender last_name title  token version
0  mr@abc.com    0123456789     1234567     true  1985-12-23        single        Max      m    Muster   Dr.  dsfgf     1.1


辉煌!非常感谢安迪
推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有