如何从不规则层级的嵌套字典创建Pandas多级DataFrame?
解决方法
可以通过pandas内置的json_normalize函数快速处理嵌套字典,再将扁平化的列名转换为多级索引即可,完整实现代码如下:
import pandas as pd # 定义原始嵌套字典 dic = {'key': 1, 'detail': {'name': 'Ken', 'sex': 'M', 'location': {'lat': 10, 'lng': 20}, 'family': {'sister': {'name': 'Ann', 'location': {'lat': 30, 'lng': 40}}}}} # 第一步:扁平化嵌套字典,默认会用.拼接层级字段名 df_flat = pd.json_normalize(dic) # 第二步:将列名按.拆分后转为多级列索引 df_flat.columns = pd.MultiIndex.from_tuples([tuple(col.split('.')) for col in df_flat.columns]) # 输出最终DataFrame print(df_flat)
运行后得到的DataFrame列结构完全匹配预期的多级结构,最外层为key和detail,向下逐层对应嵌套字典的层级关系。
内容的提问来源于stack exchange,提问作者Chan
相关产品推荐
相关产品推荐

