在pandas系列中将多索引连接成单个索引

时间:2018-03-05 12:03:11

标签: python pandas

我有一个带有多索引的pandas.Series

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: float64

我想以下列形式将multiindex合并为一个索引:

one_a   1.0
one_b   2.0
two_a   3.0
two_b   4.0
dtype: float64

有一个很好的方法吗?

1 个答案:

答案 0 :(得分:5)

mapjoin

一起使用
s.index = s.index.map('_'.join)

替代方案是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