如何删除不在列表中的索引标签的pandas系列的行/项?

时间:2017-01-05 09:35:38

标签: python python-2.7 python-3.x pandas series

我有一份标签清单。

我还有一个包含多个行/项的pandas系列,其中一些在该列表中有索引标签,而另一些则在该列表中没有索引标签。

我想删除该系列中没有该列表标签的行/项。

我能想到的唯一方法是迭代系列,检查索引标签是否在该列表中,如果没有则删除它。

还有其他更简单的方法吗?如果没有,有人可以提供代码来执行此操作,因为我也无法使其工作(不确定如何迭代系列以及如何将其索引标签与列表中的标签进行比较)。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以Index.intersection使用loc

s = pd.Series([1,2,5,6], index=list('abcd'))
print (s)
a    1
b    2
c    5
d    6
dtype: int64

L = list('cdef')
print (s.loc[s.index.intersection(L)])
c    5
d    6
dtype: int64

isin的另一个可行解决方案:

print (s.loc[s.index.isin(L)])
c    5
d    6
dtype: int64