将嵌套JSON展开为Dataframe的问题求助
将嵌套JSON展开为Dataframe的问题求助
嘿,我太懂你找遍相关答案却死活解决不了问题的烦躁了!我之前也碰到过类似的嵌套JSON转扁平DataFrame的需求,给你分享个实用的解决方案。
先把你的问题场景理清楚:你有一段带嵌套数组的JSON数据,我帮你补全了没写完的部分,大概是这样的:
json_2_explode = [ { "scalar": "43", "units": "m", "parameter": [{"no_1": "45", "no_2": "1038", "no_3": "356"}], "name": "Foo", }, { "scalar": "54.1", "units": "km", "parameter": [{"no_1": "22", "no_2": "987", "no_3": "129"}], "name": "Bar", } ]
你想要把parameter里的嵌套字段都展开成DataFrame的单独列,得到一个完全扁平的表格对吧?
用Pandas的json_normalize方法就能完美解决这个问题,它专门处理这种嵌套JSON结构。具体代码如下:
首先导入Pandas:
import pandas as pd
然后调用json_normalize,指定要展开的嵌套数组路径,以及需要保留的其他顶层字段:
df = pd.json_normalize( json_2_explode, record_path='parameter', # 指定要展开的嵌套数组字段 meta=['scalar', 'units', 'name'] # 指定要保留的非嵌套字段 )
运行这段代码后,你就能得到想要的扁平DataFrame了:
| scalar | units | no_1 | no_2 | no_3 | name |
|---|---|---|---|---|---|
| 43 | m | 45 | 1038 | 356 | Foo |
| 54.1 | km | 22 | 987 | 129 | Bar |
另外补充一句:如果你的parameter数组里有多个字典元素(比如某条数据里有多个parameter项),这个方法也会自动把它们拆分成多行,同时保留对应的scalar、units等字段,非常灵活。
备注:内容来源于stack exchange,提问作者user37292
相关产品推荐
相关产品推荐

