Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将groupby转换为json,并将其嵌套在组的名称下_Python_Json_Pandas_Pandas Groupby - Fatal编程技术网

Python 将groupby转换为json,并将其嵌套在组的名称下

Python 将groupby转换为json,并将其嵌套在组的名称下,python,json,pandas,pandas-groupby,Python,Json,Pandas,Pandas Groupby,我有这个数据框: $ df EU S. A. B. C. Ar 63 7 8 0 Az 51 8 12 7 Be 95 15 4 5 Ge 81 8 5 5 Ka 61 3 7 4 当我按“欧盟: 我得到: { Ar:{ S.: 63, A.: 7, B.: 8, C.: 0 },{ A

我有这个数据框:

$ df 
    EU S.   A.  B.  C.  
    Ar 63   7   8   0
    Az 51   8   12  7
    Be 95   15  4   5
    Ge 81   8   5   5
    Ka 61   3   7   4
当我按“欧盟:

我得到:

    {
        Ar:{
               S.: 63, A.: 7, B.: 8, C.: 0
           },{
        Az:{
               S.: 51, A.: 8, B.: 12, C.: 7
           },{
               Be:{S.: 95, A.: 15, B.: 5, C.: 5} ...
    }
我真正想要的是:

{
  EU:{
        Ar:{
               S.: 63, A.: 7, B.: 8, C.: 0
           },{
        Az:{
               S.: 51, A.: 8, B.: 12, C.: 7
           },{
               Be:{S.: 95, A.: 15, B.: 5, C.: 5} ...
     }
}

有人知道如何处理这个问题吗?谢谢

首先创建一个以顶级键作为组名的嵌套字典,然后使用
json.dumps
将这个dict序列化为
json
格式化
str

import json

j = json.dumps({'EU': df.groupby('EU').sum().to_dict('i')})

import json

j = json.dumps({'EU': df.groupby('EU').sum().to_dict('i')})
{
    "EU": {
        "Ar": {
            "S.": 63,
            "A.": 7,
            "B.": 8,
            "C.": 0
        },
        ...
        ...
        "Ka": {
            "S.": 61,
            "A.": 3,
            "B.": 7,
            "C.": 4
        }
    }
}