Pandas DataFrame结合嵌套JSON中的某些列

时间:2018-06-15 13:56:34

标签: python json pandas

假设你有一个像这样的pandas DataFrame:

A1a  A1b   A2a    A2b   …   B1a …
0.25 0.75  0.10   0.5       1   
…    …     …      …         …   

并且您想要输出JSON的对象列表(每行一个对象),如下所示:

[
    {
        A: {
            1: {
                a: 0.25,
                b: 0.75
            },
            2: {
                a: 0.1,
                b: 0.5,
                ...
            },
            ...
        },
        B: {
            1: {
                a: 1
            },
            ...
        },
        ...
    },
    ...
]

最好的方法是什么?

这里显然有很多pandas /嵌套JSON问题,但我认为这是不同的,因为我试图在同一行中嵌套特定列,而不是对列中具有相同值的行进行分组(如在this example)。

1 个答案:

答案 0 :(得分:2)

由于您链接了该页面,我将从该链接中接受的答案中借用recur_dictify函数

#make your df columns become multiple index 
df.columns=pd.MultiIndex.from_tuples(df.columns.map(list).map(tuple))

      A
      1          2
      a     b    a    b
0  0.25  0.75  0.1  0.5

#Then we apply the function
recur_dictify(df.T.reset_index())

{'A': {'1': {'a': 0.25, 'b': 0.75}, '2': {'a': 0.1, 'b': 0.5}}}