pandas read json не работает с несколькими индексами

#json #python-2.7 #pandas

#json #python-2.7 #pandas

Вопрос:

Привет, у меня есть приведенный ниже набор данных в dataframe:

 app_id    | mob | qtr   |  amt_fin  | net_loss
------------------------------------------------
59101378  | 0   | 20143 | 32387.99  | 1.47
-----------------------------------------------
59101378  | 1   | 20143 | 32387.99  | 3.6
-----------------------------------------------
59101378  | 2   | 20143 | 32387.99  | 1.02
-----------------------------------------------
59101378  | 3   | 20143 | 32387.99  | 0.77
------------------------------------------------
59101378  | 4   | 20143 | 32387.99  | 0.77
-----------------------------------------------
59101500  | 0   | 20143 | 2500      | 1.088
-----------------------------------------------
59101500  | 1   | 20143 | 2500      | -0.13
-----------------------------------------------
59101500  | 2   | 20143 | 2500      | 0.43
-----------------------------------------------
59101500  | 3   | 20143 | 2500      | 0.45
  

Мне нужен мой файл json следующим образом:

 [app_id=59101378:{mob=0{qtr=20143,amt_fin=32387.9,net_loss=1.47},mob=1{qtr=20143,amt_fin=32387.9,net_loss=3.6},mob=2{qtr=20143,amt_fin=32387.9,net_loss=1.02},mob=3{qtr=20143,amt_fin=32387.9,net_loss=0.77},mob=4{qtr=20143,amt_fin=32387.9,net_loss=0.77}},app_id=59101500:{mob=0{qtr=20143,amt_fin=2500,net_loss=-.13},mob=1{qtr=20143,amt_fin=2500,net_loss=.43},mob=2{qtr=20143,amt_fin=2500,net_loss=.45}}]
  

возможно, проблема с форматом, но способ индексирования, который я ищу, такой же. Не могли бы вы сообщить мне, как я могу добиться этого в python, panda, json
я хочу, чтобы мой файл json индексировался в столбцах app_id, а затем в столбцах mob. но одна единственная запись для app_id

Комментарии:

1. это недопустимо json . Я остаюсь, пытаясь расшифровать, хотите ли вы этот точный шаблон и думали, что это json так, или если хотите, json и не был уверен, что то, что вы представили, на самом деле json . Если вы хотите получить фактическую сертификацию json , вы не можете получить то, что просили.

Ответ №1:

Это генерирует правильную строку json в той ориентации / порядке, которые вы ищете:

 df.to_json(orient='records')
  

Комментарии:

1. OP, пожалуйста, обратите внимание, что это правильно json и почти наверняка то, что вам действительно нужно.

2. это не помогло. Я хочу, чтобы индекс был в app_id, а затем в mob.

3. приведенный выше синтаксис дал мне несколько {…} для того же app_id,

4. вы также можете set_index и получить orient=’index’ . Вам нужно поиграть с аргументами, но опять же, и, как уже упоминал @piRSquared, ваша проблема в том, что вы все еще не знаете, какой квалифицированный json вам нужен, поэтому вам лучше сначала поработать над этим определением