#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