熊猫将Dataframe转换为Nested Json

发布于 2021-01-29 15:22:23

我的问题本质上与此相反:

从深度嵌套的JSON创建Pandas
DataFrame

我想知道是否有可能做相反的事情。给定一个像这样的表:

     Library  Level           School Major  2013 Total
200  MS_AVERY  UGRAD  GENERAL STUDIES  GEST        5079
201  MS_AVERY  UGRAD  GENERAL STUDIES  HIST           5
202  MS_AVERY  UGRAD  GENERAL STUDIES  MELC           2
203  MS_AVERY  UGRAD  GENERAL STUDIES  PHIL          10
204  MS_AVERY  UGRAD  GENERAL STUDIES  PHYS           1
205  MS_AVERY  UGRAD  GENERAL STUDIES  POLS          53

是否可以生成嵌套的字典(或JSON),如:

字典:

{'MS_AVERY': 
    { 'UGRAD' :
        {'GENERAL STUDIES' : {'GEST' : 5}
                             {'MELC' : 2}

 ...
关注者
0
被浏览
42
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在给定DataFrame对象的情况下,创建一个函数似乎可以构建递归字典似乎并不难:

    def fdrec(df):
        drec = dict()
        ncols = df.values.shape[1]
        for line in df.values:
            d = drec
            for j, col in enumerate(line[:-1]):
                if not col in d.keys():
                    if j != ncols-2:
                        d[col] = {}
                        d = d[col]
                    else:
                        d[col] = line[-1]
                else:
                    if j!= ncols-2:
                        d = d[col]
        return drec
    

    会产生:

    {'MS_AVERY':
        {'UGRAD':
            {'GENERAL STUDIES': {'PHYS': 1L, 
                                 'POLS': 53L,
                                 'PHIL': 10L,
                                 'HIST': 5L,
                                 'MELC': 2L,
                                 'GEST': 5079L}}}}
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看