从pandas系列中排除一个或多个项目

时间:2013-07-09 23:12:36

标签: python pandas

我想知道如何从熊猫系列中排除一个或多个项目。例如:

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]

有没有更好的方法呢?

感谢。

1 个答案:

答案 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