2013-07-09 38 views
6

Bir veya daha fazla öğeyi panda dizisinden nasıl hariç tutacağımı merak ediyorum. Örneğin:Pandalardan bir veya daha fazla öğe hariç tut

index = s.index 
for col in ['B','D','E']: 
    index = index.delete(index.get_loc(col)) 

new_series = s[index] 

Bunu yapmak için daha iyi bir yolu var mı:

s = pd.Series(data=range(10), index=[chr(ord('A') + x) for x in range(10)]) 

Şimdi satırları B, D dışlamak istediğiniz E

Son derece verimsiz bir yolu bu yapmaktır?

Teşekkürler.

cevap

9

Dizin isin yöntemi kullanabilirsiniz: Series maskelemek için

In [12]: ~s.index.isin(list('BDE')) 
Out[12]: array([ True, False, True, False, False, True, True, True, True, True], dtype=bool) 

ve bu kullanın:

In [11]: s.index.isin(list('BDE')) 
Out[11]: array([False, True, False, True, True, False, False, False, False, False], dtype=bool) 

inkâr (yani artık "değil de" okur) invert operatörü kullanılarak:

In [13]: s = s[~s.index.isin(list('BDE'))] 

In [14]: s 
Out[14]: 
A 0 
C 2 
F 5 
G 6 
H 7 
I 8 
J 9 
dtype: int64 
İlgili konular