Вложенный столбец в Pandas Dataframe - PullRequest
0 голосов
/ 22 мая 2018

Вложенный вложенный столбец в кадре данных pandas, который я получил после json_normalize запроса, выглядит следующим образом:

  {  
   'Speed':352,
   'type':[  
      {  
         'details':'change\n',
         'id':'3129f48c-23a6-49bd-9854',
         'machine':'logs',
         'Cause':{  
            'code':'051',
            'description':'Error',
            'id':'41827d41-75c5-4c88-9ec3',
            'reason':'Error'
         }
      }
   ],
   'endTime':1522844263021,
   'line':'73c2f337-46fc-415c-a24f',
   'level':1,
   'lineId':'9b6a5624-4add-4fce-9de3',
   'loss':0,
   'startTime':1522842642200
}

Как его можно разделить на столбцы?Я пробовал подход с лямбда это, но это дает мне ошибку 'list index out of range', а также я не знаю, как бороться со вторым гнездом:

df['details'] = df.loc[:, 'type'].apply(lambda x: x[0]['details'])

Как можно решить эту задачу?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Опции json_normalize () помогли мне в этой ситуации:

df_df = json_normalize(df['values'], record_path=['type'], meta=['Speed','endTime', 'level','lineId', 'loss', 'startTime'])
0 голосов
/ 22 мая 2018

Если я правильно понял вашу проблему, вы работаете с мультииндексом в качестве столбцов вашего информационного кадра.Хотя я не могу понять, что вы пытаетесь сделать с этим.

Если вы хотите получить доступ к подстолбцу "детали", попробуйте что-то вроде:

df['type']['details']

Я могуНе гарантирую, что это будет работать, так как я не смог воссоздать фрейм данных с предоставленными вами данными

Может быть, это поможет

https://pandas.pydata.org/pandas-docs/stable/advanced.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...