Tengo el siguiente DataFrame donde una de las columnas es un objeto (celda de tipo lista):
df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]}) df Out[458]: AB 0 1 [1, 2] 1 2 [1, 2]Mi salida esperada es:
AB 0 1 1 1 1 2 3 2 1 4 2 2¿Qué debo hacer para lograr esto?
Pregunta relacionada
pandas: cuando los contenidos de las celdas son listas, cree una fila para cada elemento de la lista
Buena pregunta y respuesta, pero solo maneje una columna con lista (en mi respuesta, la función de autodefensa funcionará para varias columnas, también la respuesta aceptada es usar la apply que consume más tiempo, lo cual no se recomienda, verifique más información ¿Cuándo debería alguna vez? ¿quieres usar pandas apply() en mi código? )
Explotar una columna similar a una lista se ha simplificado significativamente en pandas 0.25 con la adición del método explode() :
df = pd.DataFrame({'A': [1, 2], 'B': [[1, 2], [1, 2]]}) df.explode('B')Fuera:
AB 0 1 1 0 1 2 1 2 1 1 2 2