2013-07-09 35 views
6

Tôi tự hỏi cách loại trừ một hoặc nhiều mục khỏi chuỗi gấu trúc. Ví dụ:Loại trừ một hoặc nhiều mục khỏi gấu trúc Dòng

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

Bây giờ tôi muốn loại trừ hàng B, D, E

Một cách cực kỳ hiệu quả là để làm điều này:

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

new_series = s[index] 

Có cách nào tốt hơn để làm điều này?

Cảm ơn.

Trả lời

9

Bạn có thể sử dụng phương pháp chỉ số isin:

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

phủ nhận sử dụng toán tử nghịch (vì vậy nó bây giờ đọc "không"):

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

và sử dụng để che Series:

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 
Các vấn đề liên quan