首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dataframe将列分组到嵌套json

Dataframe将列分组到嵌套json
EN

Stack Overflow用户
提问于 2020-10-23 20:39:55
回答 1查看 37关注 0票数 1

我想通过按字典格式的前2列分组来输出数据帧。这是我的数据框架:

代码语言:javascript
复制
    COMUNIDAD   PROVINCIA   EMPLAZAMIENTO
0   ANDALUCIA   ALMERIA ALMERIA
1   ANDALUCIA   ALMERIA EJIDO, EL
2   ANDALUCIA   ALMERIA HUERCAL OVERA
3   ANDALUCIA   ALMERIA PECHINA
4   ANDALUCIA   ALMERIA VELEZ BLANCO
... ... ... ...
246 VALENCIA    VALENCIA    COFRENTES
247 VALENCIA    VALENCIA    MONDUBER
248 VALENCIA    VALENCIA    ONTENIENTE
249 VALENCIA    VALENCIA    PICAYO
250 VALENCIA    VALENCIA    UTIEL

我想要这个输出:

代码语言:javascript
复制
{
    "ANDALUCIA":{
        "ALMERIA":[
            "ALMERIA",
            "EJIDO, EL",
            ...

        ],
        "CADIZ":[
            "JEREZ DE LA FRONTERA",
            ...
        ]
    },
    "ARAGON":{
        "HUESCA":[
            "ARGUIS",
            ...
        ],
        ...
    },
    ...
}

通过熊猫实现这一目标的最好方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 20:51:59

对列表使用GroupBy.agg,然后创建嵌套字典:

代码语言:javascript
复制
s = df.groupby(['COMUNIDAD','PROVINCIA'])['EMPLAZAMIENTO'].agg(list)

d = {level: s.xs(level).to_dict() for level in s.index.levels[0]}
print (d)
{'ANDALUCIA': {'ALMERIA': ['ALMERIA', 'EJIDO, EL', 
                           'HUERCAL OVERA', 'PECHINA', 'VELEZ BLANCO']}, 
 'VALENCIA': {'VALENCIA': ['COFRENTES', 'MONDUBER',
                           'ONTENIENTE', 'PICAYO', 'UTIEL']}}

最后一次使用json:

代码语言:javascript
复制
import json
j = json.dumps(d)
print (j)
{"ANDALUCIA": {"ALMERIA": ["ALMERIA", "EJIDO, EL",
                           "HUERCAL OVERA", "PECHINA", "VELEZ BLANCO"]}, 
 "VALENCIA": {"VALENCIA": ["COFRENTES", "MONDUBER", 
                           "ONTENIENTE", "PICAYO", "UTIEL"]}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64500181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档