У меня есть датафрейм 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"}]
...
Как видите, не все строки имеют одинаковое количество элементов в строках 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
Я пытался использовать json_normalize
так:
from pandas.io.json import json_normalize
json_normalize(df)
Но, похоже, есть некоторые проблемы с keyerror
. Как правильно это сделать?