Tengo un pandas.Series con multiíndice:
index = pd.MultiIndex.from_tuples([('one', 'a'), ('one', 'b'), ('two', 'a'), ('two', 'b')]) s = pd.Series(np.arange(1.0, 5.0), index=index) print(s) one a 1.0 b 2.0 two a 3.0 b 4.0 dtype: float64Quiero fusionar el multiíndice en un solo índice de la siguiente forma:
one_a 1.0 one_b 2.0 two_a 3.0 two_b 4.0 dtype: float64¿Hay una buena manera de hacer esto?
Usar map con join :
s.index = s.index.map('_'.join) La alternativa es list comprehension :
s.index = ['{}_{}'.format(i, j) for i, j in s.index] print (s) one_a 1.0 one_b 2.0 two_a 3.0 two_b 4.0 dtype: float64