我有一个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字符串中具有相同数量的元素.
我需要做的是保持正常的列像它一样,id并name像这样平整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)