如何从含多值的字典自定义生成Pandas DataFrame?
解决方法
首先,pd.DataFrame.from_dict() 根本没有 index 这个参数,这就是你报错的原因。要得到你想要的结果,得先把字典里的字符串值解析成结构化数据,再转成DataFrame,步骤如下:
解析字符串为嵌套字典:
原始字典里的每个值是类似val1=343, val2=935的字符串,需要先拆成键值对,变成嵌套字典:parsed_dict = { k: dict(item.split('=') for item in v.split(', ')) for k, v in dico.items() }处理后
parsed_dict的结构为:{'abc': {'val1': '343', 'val2': '935'}, 'def': {'val1': '95', 'val2': '935'}, 'ghi': {'val1': '123', 'val2': '508'}}转换为目标DataFrame:
使用from_dict时指定orient='index',让原始字典的键(abc/def/ghi)成为行索引,嵌套字典的键(val1/val2)成为列名,最后可选把字符串数值转为整数类型:import pandas as pd df = pd.DataFrame.from_dict(parsed_dict, orient='index') df = df.astype(int)
执行后得到的DataFrame格式如下:
| val1 | val2 | |
|---|---|---|
| abc | 343 | 935 |
| def | 95 | 935 |
| ghi | 123 | 508 |
内容的提问来源于stack exchange,提问作者user19956605
相关产品推荐
相关产品推荐

