我想知道如何从熊猫系列中排除一个或多个项目。例如:
s = pd.Series(data=range(10), index=[chr(ord('A') + x) for x in range(10)])
现在我要排除行B,D,E
效率极低的方法是这样做:
index = s.index
for col in ['B','D','E']:
index = index.delete(index.get_loc(col))
new_series = s[index]
有没有更好的方法呢?
感谢。
答案 0 :(得分:10)
您可以使用索引isin
方法:
In [11]: s.index.isin(list('BDE'))
Out[11]: array([False, True, False, True, True, False, False, False, False, False], dtype=bool)
否定使用反转运算符(因此它现在显示为“不在”中):
In [12]: ~s.index.isin(list('BDE'))
Out[12]: array([ True, False, True, False, False, True, True, True, True, True], dtype=bool)
并使用它来掩盖系列:
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