Чтение вложенное json в Pandas - PullRequest
       17

Чтение вложенное json в Pandas

1 голос
/ 16 апреля 2020

Я пытаюсь прочитать вложенные json данные в pandas фрейм данных. используя следующий код:

deptdata = json.loads(data)
print(pd.DataFrame(json_normalize(deptdata)))

Следующий вывод:

                           dept                      branchData
0                        Mechanical      [{'branch': 'abc', 'sale': 12}]
1                         Civil          [{'branch': 'xyz', 'sale': 18}]

Если я использую pd.DataFrame(json_normalize(deptdata, record_path="branchData")), я получаю

branch       sale
 abc          12
 xyz          18

Но я теряю отдел подробности. Как я могу получить как dept и branchData, так и groupby dept и branch?

1 Ответ

0 голосов
/ 16 апреля 2020

несколькими способами вы могли бы сделать это, во-первых, я прочитал бы оба jsons в отдельных фреймах данных и concat, если индексы совпадают.

, если это не работает, и ваши первые входные данные соответствуют выше, мы можем использовать некоторые строковые методы в pandas с модулем ast literal_eval, чтобы прочитать ваш строковый объект как словарь и разобрать его.

from ast import literal eval
df1 = pd.concat([df[['dept']], 
           df['branchData'].replace({'\[' : '', '\]' : ''} 
          ,regex=True).map(literal_eval).apply(pd.Series)],axis=1)

print(df1)

         dept branch  sale
0  Mechanical    abc    12
1       Civil    xyz    18
...