相关疑难解决方法(0)

如何将一些列作为json展平pandas数据帧?

我有一个df从数据库加载数据的数据框.大多数列都是json字符串,而有些列甚至是jsons列表.例如:

id     name     columnA                               columnB
1     John     {"dist": "600", "time": "0:12.10"}    [{"pos": "1st", "value": "500"},{"pos": "2nd", "value": "300"},{"pos": "3rd", "value": "200"}, {"pos": "total", "value": "1000"}]
2     Mike     {"dist": "600"}                       [{"pos": "1st", "value": "500"},{"pos": "2nd", "value": "300"},{"pos": "total", "value": "800"}]
...
Run Code Online (Sandbox Code Playgroud)

如您所见,并非所有行在列的json字符串中具有相同数量的元素.

我需要做的是保持正常的列像它一样,idname像这样平整json列:

id    name   columnA.dist   columnA.time   columnB.pos.1st   columnB.pos.2nd   columnB.pos.3rd     columnB.pos.total
1     John   600            0:12.10        500               300               200                 1000 
2     Mark   600            NaN            500               300               Nan                 800 
Run Code Online (Sandbox Code Playgroud)

我试过这样使用json_normalize:

from pandas.io.json import json_normalize
json_normalize(df) …
Run Code Online (Sandbox Code Playgroud)

python json flatten dataframe pandas

23
推荐指数
4
解决办法
2万
查看次数

标签 统计

dataframe ×1

flatten ×1

json ×1

pandas ×1

python ×1