获取按索引定位的嵌套字典中的键和值的列表

我有一个像这样的结构的Excel文件:

name age status anna 35 single petr 27 married 

我已经把这样的文件转换成一个嵌套的字典,像这样的结构:

 {'anna': {'age':35}, {'status': 'single'}}, {'petr': {'age':27}, {'status': 'married'}} 

使用pandas:

 import pandas as pd df = pd.read_excel('path/to/file') df.set_index('name', inplace=True) print(df.to_dict(orient='index')) 

但是现在当运行list(df.keys())它会返回字典中所有键(“年龄”,“状态”等)的列表,但不包含“名称”。

我最终的目标是通过input一个名字来返回所有的键和值。

有没有可能? 或者,也许我应该使用其他方式导入数据,以实现目标? 最后我应该来找一本字典,因为我会用一把钥匙把它和其他字典合并起来。

我认为你需要参数drop=False set_index为不丢弃列Name

 import pandas as pd df = pd.read_excel('path/to/file') df.set_index('name', inplace=True, drop=False) print (df) name age status name anna anna 35 single petr petr 27 married d = df.to_dict(orient='index') print (d) {'anna': {'age': 35, 'status': 'single', 'name': 'anna'}, 'petr': {'age': 27, 'status': 'married', 'name': 'petr'}} print (list(df.keys())) ['name', 'age', 'status'] 

给定一个来自excel的数据框,你应该这样做来获得你想要的东西:

 resulting_dict = {} for name, info in df.groupby('name').apply(lambda x: x.to_dict()).iteritems(): stats = {} for key, values in info.items(): if key != 'name': value = list(values.values())[0] stats[key] = value resulting_dict[name] = stats 

尝试这个 :

 import pandas as pd df = pd.read_excel('path/to/file') df[df['name']=='anna'] #Get all details of anna df[df['name']=='petr'] #Get all details of petr