Q: Crear columnas en un dataframe a partir de otra que tiene registros tipo diccionario tengo un df que tiene una columna llamada tags que tiene en sus datos una estructura como {'is':false, 'is_not':false} y a partir de esa columna o sea tags quiero sacar dos columnas una llamada is y la otra is_not.. existe alguna manera de sacar esto directo o tengo que hacer un for? lo estoy haciendo algo asi  df['is']=df.tags[0]['is'] pero de esa manera todo los registros quedarían con los valores del primer registro... alguien me puede ayudar?

A: Buen día,
Puedes utilizar apply(pd.Series) para separar el diccionario en varias columnas
Cree un dataframe sencillo para mostrar el ejemplo:
df = pd.DataFrame({'a':[1,2,3], 'b':[{'is':'false', 'is_not':'false'}, {'is':'false', 'is_not':'true'}, {'is':'true', 'is_not':'true'}]})

El dataframe que se crea es:
    a   b
0   1   {'is': 'false', 'is_not': 'false'}
1   2   {'is': 'false', 'is_not': 'true'}
2   3   {'is': 'true', 'is_not': 'true'}

Luego utilizamos apply(pd.Series) en la columna b
df['b'].apply(pd.Series)

Esto devuelve lo siguiente:
    is      is_not
0   false   false
1   false   true
2   true    true

Si quieres eliminar la columna b y en su lugar poner las columnas recien creadas puedes utilizar el método concat():
pd.concat([df.drop(['b'], axis=1), df['b'].apply(pd.Series)], axis=1)

Esto devuelve lo siguiente:
    a   is      is_not
0   1   false   false
1   2   false   true
2   3   true    true

