【发布时间】:2022-01-20 10:53:54
【问题描述】:
我正在尝试构建 yaml 内容并将其转储到文件中:
它应该是这样的
group:
Base Configuration:
id: 1
group_name: Base Configuration
group_members:
- S3-WLP-Kafka-topics-test
- S3-WLP-BATCH-API-503-P
group_description: Lorem Ipsum is simply dummy text
Entity Persistence:
id: 2
group_name: Entity Persistence
group_members:
- Entity-INPUT-DATA-PERSISTENCE
- Entity-OUTPUT-DATA-PERSISTENCE
group_description: Lorem Ipsum is not simply random text.
API TESTS:
id: 3
group_name: API TESTS
group_members:
- API Configuration
group_description: Standard chunk of Lorem Ipsum
我的 pandas 数据框如下所示:
| id | group_name | group_members | group_description | level |
|---|---|---|---|---|
| 1 | Base Configuration | ['S3-WLP-Kafka-topics-test', 'S3-WLP-BATCH-API-503-P'] | Lorem Ipsum is simply dummy text | group |
| 2 | Entity Persistence | ['Entity-INPUT-DATA-PERSISTENCE', 'Entity-OUTPUT-DATA-PERSISTENCE'] | Lorem Ipsum is not simply random text. | group |
| 3 | API TESTS | ['API Configuration'] | Standard chunk of Lorem Ipsum | group |
这是我实现这一目标的尝试。
x = self.df_merged['level'].tolist()
y = self.df_merged['group_name'].tolist()
z = self.df_merged['id'].tolist()
a = self.df_merged['group_description'].tolist()
self.df_merged = self.df_merged.set_index(['level', 'group_name', 'id', 'group_description'])
self.df_merged = self.df_merged.reindex(pd.MultiIndex.from_tuples(zip(x, y, z, a)))
nested_dict = collections.defaultdict(dict)
for keys, value in self.df_merged.group_members.iteritems():
nested_dict[keys[0]][keys[1]] = value
这给了我:
defaultdict(<class 'dict'>, {'group': {'Base Configuration': ['S3-WLP-Kafka-topics-test', 'S3-WLP-BATCH-API-503-P'], 'Entity Persistence': ['Entity-INPUT-DATA-PERSISTENCE', 'Entity-OUTPUT-DATA-PERSISTENCE'], 'API TESTS': ['API Configuration']}})
虽然这不是我想要的,我的尝试也没有成功
【问题讨论】:
标签: python pandas dictionary multi-index