Серия Панд Разбивает значение на столбцы

#python #python-3.x #pandas

Вопрос:

У меня есть серия, которая выглядит примерно так:

 index
1     [{'id':1, 'primary':True,'source':None},{'id':2,'primary':False,'source':email}]
2     [{'id':2234, 'primary':True,'source':None},{'id':234,'primary':False,'source':email}]   
3     [{'id':32, 'primary':False,'source':None}]
 

Я хочу, чтобы это был фрейм данных, который выглядит так:

 index     id     primary     source
1         1      True        None
1         2      False       email
2         2234   True        None
2         234    False       email
3         32     False       google
 

Я попытался запустить это:

 df_phone_numbers = df_phone_numbers.drop("phone_numbers", axis =1).join(pd.DataFrame(df_phone_numbers["phone_numbers"].to_dict()).T)
 

Но я получаю сообщение об ошибке «Все массивы должны быть одинаковой длины».

Есть какие-нибудь советы?

Ответ №1:

Попробуйте преобразовать разнесенную серию:

 k = s.explode()
pd.DataFrame(k.tolist(), k.index)
 

Выход:

      id  primary source
1     1     True   None
1     2    False  email
2  2234     True   None
2   234    False  email
3    32    False   None