2016-09-27 5 views
1

は考えるpd.Seriessパンダシリーズのドロップマルチインデックスがユニークではありません

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 = 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 

非一意のインデックスを作成する場合たとえば、

s.drop('A') 

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 

答えて

0

私は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 
関連する問題