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