Pandas: obtenga el nivel de índice múltiple como serie

Tengo un marco de datos con múltiples niveles, por ejemplo:

idx = pd.MultiIndex.from_product((['foo', 'bar'], ['one', 'five', 'three' 'four']),
                                 names=['first', 'second'])
df = pd.DataFrame({'A': [np.nan, 12, np.nan, 11, 16, 12, 11, np.nan]}, index=idx).dropna().astype(int)

              A     
first second
foo   five     12
      four     11
bar   one      16
      five     12
      three    11

Quiero crear una nueva columna usando el nivel de índice tituladosecondpara que yo pueda

              A    B  
first second
foo   five     12   five
      four     11   four
bar   one      16   one
      five     12   five
      three    11   three

Puedo hacer esto restableciendo el índice, copiando la columna y luego volviendo a aplicar, pero eso parece más completo.

Lo intentédf.index.levels[1], pero eso crea una lista ordenada, no conserva el orden.

Si fuera un índice único, usaríadf.index pero en un índice múltiple que crea una columna de tuplas.

Si esto se resuelve en otro lugar, comparta ya que no he tenido suerte buscando en los archivos de stackoverflow.

Respuestas a la pregunta(2)

Su respuesta a la pregunta