Pandas: lista dividida en columna en varias filas

Tengo una pregunta sobre la división de una lista en una columna de marco de datos en varias filas.

Digamos que tengo este marco de datos:

  Job position   Job type  id
0          [6]        [1]   3
1       [2, 6]  [3, 6, 5]   4
2          [1]        [9]  43

Me gustaría cada combinación de números, por lo que el resultado final sería:

   id    Job position  Job type
0   3         6.0       1.0
1   4         2.0       3.0
2   4         2.0       6.0
3   4         2.0       5.0
4   4         6.0       3.0
5   4         6.0       6.0
6   4         6.0       5.0
7  43         1.0       9.0

Porque ahora mismo obtengo este resultado:

   id    Job position  Job type
0   3         6.0       1.0
1   4         2.0       3.0
2   4         6.0       6.0
3   4         NaN       5.0
4  43         1.0       9.0

Para obtener el resultado anterior, hice:

df = df.set_index(['id'])
(df.apply(lambda x: pd.DataFrame(x.tolist(),index=x.index)
                        .stack()
                        .rename(x.name)).reset_index())

Respuestas a la pregunta(4)

Su respuesta a la pregunta