Как сгладить фрейм данных pandas с некоторыми столбцами в формате JSON?Python

Программы на Python
Ответить
Anonymous
 Как сгладить фрейм данных pandas с некоторыми столбцами в формате JSON?

Сообщение Anonymous »

У меня есть фрейм данных df, который загружает данные из базы данных. Большинство столбцов представляют собой строки json, а некоторые даже представляют собой списки json. Например:

Код: Выделить всё

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, как есть, и сгладить столбцы 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)
Но, похоже, есть некоторые проблемы с ошибкой ключа. Как правильно это сделать?

Подробнее здесь: https://stackoverflow.com/questions/398 ... ns-as-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»