Python 如何删除索引为';标签不在列表中?

Python 如何删除索引为';标签不在列表中?,python,python-2.7,python-3.x,pandas,series,Python,Python 2.7,Python 3.x,Pandas,Series,我有一份标签清单 我还有一个pandas系列,它有多个行/项,其中一些行/项的索引标签在该列表中,而另一些行/项的索引标签不在该列表中 我想删除该系列中标签不在该列表中的行/项 我能想到的唯一方法是迭代序列,检查索引标签是否在该列表中,如果不在,则将其删除 还有其他更简单的方法吗?如果没有,有人能提供这样做的代码吗,因为我也不能让它工作(不知道如何迭代一个系列,以及如何将它的索引标签与列表中的标签进行比较) 非常感谢您的帮助。您可以使用: 另一个可行的解决方案是: 您可以使用: 另一个可行的解决

我有一份标签清单

我还有一个pandas系列,它有多个行/项,其中一些行/项的索引标签在该列表中,而另一些行/项的索引标签不在该列表中

我想删除该系列中标签不在该列表中的行/项

我能想到的唯一方法是迭代序列,检查索引标签是否在该列表中,如果不在,则将其删除

还有其他更简单的方法吗?如果没有,有人能提供这样做的代码吗,因为我也不能让它工作(不知道如何迭代一个系列,以及如何将它的索引标签与列表中的标签进行比较)

非常感谢您的帮助。

您可以使用:

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

您可以使用:

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


你认为像
df[labels]
这样的列表可以选择列吗?或者通过索引值,如
df.loc[labels]
?将不会
df=df.drop(缺少标签的列表)
起作用?请使用相关原始数据、代码、尝试和所需输出编辑您的问题您认为通过列表选择列,如
df[labels]
?或者通过索引值,如
df.loc[labels]
?不会
df=df.drop(列表中缺少标签)
工作?请使用相关原始数据、代码、尝试和所需输出编辑您的问题
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
print (s.loc[s.index.isin(L)])
c    5
d    6
dtype: int64