【发布时间】:2021-11-16 04:40:14
【问题描述】:
我正在尝试从数据框创建嵌套字典,但不包含列名(即“描述”)作为另一个级别。
这是我的开始:
d = {"field_name": ["foo", "foo", "foo", "bar", "bar"],
"values": ["key1", "key2", "key3", "key1", "key5"],
"description": ["value1", "value2", "value3", "value4", "value6"]}
df = pd.DataFrame(data=d)
df.head()
| field_name | values | description |
|---|---|---|
| foo | key1 | value1 |
| foo | key2 | value2 |
| foo | key3 | value3 |
| bar | key1 | value4 |
| bar | key5 | value6 |
这是我目前拥有的:
df.groupby("field_name")[["values","description"]].apply(lambda x: x.set_index("values").to_dict(orient="dict")).to_dict()
{'bar': {'description': {'key1': 'value4', 'key5': 'value6'}},
'foo': {'description': {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}}}
这就是我想要的:
{'bar': {'key1': 'value4', 'key5': 'value6'},
'foo': {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}}
【问题讨论】:
标签: python dictionary