pandas 当 multiindex 不唯一时系列下降

pandas series drop when multiindex is not unique

考虑 pd.Series s

midx = pd.MultiIndex.from_product([list('ABC'), np.arange(3)])
s = pd.Series(1, midx)
s

A  0    1
   1    1
   2    1
B  0    1
   1    1
   2    1
C  0    1
   1    1
   2    1
dtype: int64

使用drop去掉横截面非常方便。例如

s.drop('A')

B  0    1
   1    1
   2    1
C  0    1
   1    1
   2    1
dtype: int64

但是如果我让索引不唯一

s = s.append(pd.Series(0, pd.MultiIndex.from_tuples([('A', 2)]))).sort_index()
s

A  0    1
   1    1
   2    1
   2    0
B  0    1
   1    1
   2    1
C  0    1
   1    1
   2    1
dtype: int64

然后相同的 drop 不再有效。

s.drop('A')

A  0    1
   1    1
   2    1
   2    0
B  0    1
   1    1
   2    1
C  0    1
   1    1
   2    1
dtype: int64

如何像以前一样掉落

期望的结果应该是(这不起作用,什么起作用)

s.drop('B')

A  0    1
   1    1
   2    1
   2    0
C  0    1
   1    1
   2    1
dtype: int64

我不确定为什么 s.drop('B') 不起作用,但使用 level=0 参数却起作用。

s.drop('B', level=0)

A  0    1
   1    1
   2    1
   2    0
C  0    1
   1    1
   2    1
dtype: int64