如何翻转pandas DataFrame导出的Python字典,得到以人员为键的结构
字典结构转换实现方案
完全可以实现该需求,以下是两种不同场景下的实现方法:
方法1:直接从DataFrame转换(推荐)
如果还未将DataFrame导出为字典,可直接通过to_dict方法的orient参数一步生成目标结构,无需二次处理:
import pandas as pd # 构造示例DataFrame(你已完成person列设为索引的步骤可跳过前面构造部分) data = { 'person': ['kate', 'john'], 'weight': [160, 170], 'height': [200, 150], 'skill': [100, 70] } df = pd.DataFrame(data).set_index('person') # 索引首字母大写,匹配目标格式的人名写法 df.index = df.index.str.capitalize() # 直接生成目标结构字典 target_dict = df.to_dict(orient='index')
方法2:对已生成的原始字典做结构重组
如果已经得到了以字段为顶级键的原始字典,可通过遍历重组得到目标结构:
# 你已得到的原始字典 raw_dict = { 'weight': {'kate': '160', 'john': '170'}, 'height': {'kate': '200', 'john': '150'}, 'skill': {'kate': '100', 'john': '70'} } target_dict = {} for field, person_map in raw_dict.items(): for name, value in person_map.items(): # 人名首字母大写,匹配目标格式 cap_name = name.capitalize() if cap_name not in target_dict: target_dict[cap_name] = {} target_dict[cap_name][field] = value
两种方法最终输出的结果都和你需要的目标字典格式完全一致。
内容的提问来源于stack exchange,提问作者kitchen800
相关产品推荐
相关产品推荐

