Cambiar nombres de columnas en pandas con columnas jerárquicas

Digamos que tengo un marco de datos con un índice jerárquico:

>>> df = pd.DataFrame(np.ones((2, 4)))
>>> df
   0  1  2  3
0  1  1  1  1
1  1  1  1  1

[2 rows x 4 columns]
>>> df.columns = pd.MultiIndex.from_product([['a', 'b'], ['i', 'ii']])
>>> df
   a      b    
   i  ii  i  ii
0  1   1  1   1
1  1   1  1   1

[2 rows x 4 columns]

¿Hay una manera fácil de cambiar los nombres de columna en 'b'? Pensé que lo siguiente era intuitivo, pero no funciona.

>>> df['b'].columns = ['iii', 'iv']
>>> df
   a      b    
   i  ii  i  ii
0  1   1  1   1
1  1   1  1   1

[2 rows x 4 columns]

Respuestas a la pregunta(1)

Su respuesta a la pregunta