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

Tom*_*ett 9 python pandas

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

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

现在我想排除行B,D,E

一种效率极低的方法是:

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

new_series = s[index]
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

谢谢.

And*_*den 12

您可以使用索引isin方法:

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

否定使用反转运算符(所以现在读取"不在"):

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

并使用它来掩盖系列:

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
Run Code Online (Sandbox Code Playgroud)