Как выбрать столбцы данных из DataFrame

Я получаю результаты опроса от Lime Survey через его API (удаленный контроль):

введите здесь описание изображения

И мне удалось поместить его в DataFrame. Но это всего лишь 1 столбец в строке:

введите здесь описание изображения

Данные выглядят так.

введите здесь описание изображения

Что я хочу сделать, так это получить средние данные по вопросам и категориям. В приведенном ниже примере q10[wor1], q10[wor2], . . ., q10[wor7] дают 7 вопросов, входящих в категорию q10.

Как сначала выбрать все данные для wor1, wor2, ..., wor7 отдельно, чтобы я мог вести статистику по каждому из этих отдельных вопросов.

Тогда как мне выбрать все данные для q10*, чтобы я мог делать статистику для всей группы?

Даже не пытаясь отделить категорию от вопроса, я не смог выбрать все данные «q10[wor1]».


person Brad Rhoads    schedule 14.02.2018    source источник
comment
Пожалуйста, не размещайте изображения кода. Вместо этого предоставьте минимальный, полный, поддающийся проверке пример.   -  person Alex    schedule 15.02.2018
comment
Я понял, что могу запросить CSV вместо JSON у Lime Survey. Стало намного проще.   -  person Brad Rhoads    schedule 17.02.2018


Ответы (1)


Проверьте jq — https://stedolan.github.io/jq/

Вы можете передать свой df ['responses'] json в jq, извлечь необходимое поле и создать его как отдельный столбец df.

И тогда вы можете получить среднее значение столбцов из df.

person Vignesh Sethuraman    schedule 14.02.2018
comment
Это похоже на возможное решение. Но я бы предпочел чистое решение для Python. - person Brad Rhoads; 15.02.2018
comment
Вы можете использовать то же самое, используя встроенную библиотеку json в Python. Поскольку ваши данные заключены в индекс, вам, возможно, придется перебрать все ключи, чтобы извлечь необходимые поля. См. здесь для ссылки - json ищет ключ в python">stackoverflow.com/questions/26954716/ библиотека jQ поможет вам сократить количество дополнительных строк кода и будет прямолинейной. - person Vignesh Sethuraman; 15.02.2018