Разверните столбец сведений о элементах в формате json в новые строки с помощью Python pandas

#python #json #pandas #dataframe

#python #json #pandas #фрейм данных

Вопрос:

Я импортировал файл json в pandas, аналогичный

 data = [
  {
     'order_id': 1 ,
    'line_item': [{'id': 11, 'price':34.1},{'id': 22, 'price':53.1}]
    },
    
  {
    'order_id': 2,
    'line_item': [{'id': 11, 'price':34.1},{'id': 33, 'price':64.1}]
    },

  
]
  

Я хочу разделить детали line_item на новые строки, мой целевой фрейм данных будет

 order_id    item_id   price
1           11        34.1
1           22        53.1
2           11        34.1
2           33        64.1
  

Спасибо за любые предложения.

Ответ №1:

Попробуйте explode затем « explode строка

 s = df.explode('line_item')
out = pd.DataFrame(s.line_item.tolist()).assign(order_id = s.order_id.values)
out
   id  price  order_id
0  11   34.1         1
1  22   53.1         1
2  11   34.1         2
3  33   64.1         2
  

Ответ №2:

pandas.json_normalize это идеальная вещь для работы:

 df = pd.json_normalize(data, "line_item", meta="order_id")

print(df)
   id  price order_id
0  11   34.1        1
1  22   53.1        1
2  11   34.1        2
3  33   64.1        2