python - 如何从不均匀层字典创建多级数据框?
问题描述
我有一本字典:
dic = {'key': 1, 'detail': {'name': 'Ken', 'sex': 'M', 'location': {'lat': 10, 'lng': 20}, 'family': {'sister': {'name': 'Ann', 'location': {'lat': 30, 'lng': 40}}}}}
如何获得以下数据框?
解决方案
使用json_normalize()
++属性pd.MultiIndex.from_frame()
:'columns'
df=pd.json_normalize(dic)
idx=pd.DataFrame(df.columns.str.split('.',expand=True).tolist()).fillna('')
df.columns=pd.MultiIndex.from_frame(idx,names=[None]*len(idx.columns))
的输出df
:
或者
但它将显示NaN
在列中:
df=pd.json_normalize(dic)
df.columns=df.columns.str.split('.',expand=True)
的输出df
:
推荐阅读
- javascript - javascript - 在这些字符之一之前返回字符串
- ruby-on-rails - 按键对嵌套哈希中的项目进行排序
- php - webpack-encore-bundle 未知的“encore_entry_script_tags”函数
- java - 使用 JUnit 测试 Spring 安全性时如何删除“ROLE_”前缀?
- compilation - 如何与 .gpr 项目文件和 gprbuild 交叉编译?
- python - PySMB 连接但无法存储文件
- jquery - Jquery AJAX响应JSON解析
- verilog - 在 Verilog 中声明一个端口,其中一些位是输入,一些是输出
- kubernetes - 列出整个集群中所有正在运行的容器?
- javascript - 使用 reactjs 下载的 .zip 文件内容已损坏