首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫-按3栏向JSON输出组

熊猫-按3栏向JSON输出组
EN

Stack Overflow用户
提问于 2020-01-26 12:24:44
回答 1查看 123关注 0票数 1

我有关于汽车的carsML数据:

代码语言:javascript
复制
+-------+-------------+--------------------+
| Manuf |    Model    |        Type        |
+-------+-------------+--------------------+
| VW    | VWModel 1   | VWModel 1 Type 1   |
| VW    | VWModel 2   | VWModel 2 Type 1   |
| VW    | VWModel 2   | VWModel 2 Type 2   |
| Opel  | OpelModel 1 | OpelModel 1 Type 1 |
| Opel  | OpelModel 2 | OpelModel 2 Type 1 |
| Opel  | OpelModel 2 | OpelModel 2 Type 2 |
+-------+-------------+--------------------+

我需要将唯一的值导出到JSON。我知道如何达到2级:

代码语言:javascript
复制
j = carsML.groupby('Manuf ')['Model'].unique().to_json()

这为ManufacturersModels提供了很好的JSON,但我不知道如何在第3层(Types)上扩展它。

最后的JSON应该如下所示:

代码语言:javascript
复制
{"Opel":
{"OpelModel 1": ["OpelModel 1 Type 1"]},
["OpelModel 2":["OpelModel 2 Type 1","OpelModel 2 Type 1"]],
"VW":
{"VWModel 1":["VWModel 1 Type 1"]},
{"VWModel 2":["VWModel 2 Type 1","VWModel 2 Type 2"]}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-26 12:26:54

首先通过按2列分组创建MultiIndex Series,然后在字典理解嵌套字典中创建:

代码语言:javascript
复制
s = carsML.groupby(['Manuf','Model'])['Type'].unique().apply(list)
d = {l: s.xs(l).to_dict() for l in s.index.levels[0]}

对于json,使用嵌套字典中的json.dumps

代码语言:javascript
复制
import json
j = json.dumps({l: s.xs(l).to_dict() for l in s.index.levels[0]})

代码语言:javascript
复制
print (j)
{"Opel": {"OpelModel 1": ["OpelModel 1 Type 1"], 
          "OpelModel 2": ["OpelModel 2 Type 1", "OpelModel 2 Type 2"]},
 "VW": {"VWModel 1": ["VWModel 1 Type 1"], 
        "VWModel 2": ["VWModel 2 Type 1", "VWModel 2 Type 2"]}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59918296

复制
相关文章

相似问题

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