如何通过标签列表安全地选择pandas中的行?
当列表包含任何不存在的标签时,我想得到和Error
。在
如果索引中至少有一个标签在索引中,则方法loc
不会引发KeyError。但这还不够。在
例如:
df = pd.DataFrame(index=list('abcde'), data={'A': np.arange(5) + 10})
df
A
a 10
b 11
c 12
d 13
e 14
# here I would like to get an Error as 'xx' and 'yy' are not in the index
df.loc[['b', 'xx', 'yy']]
A
b 11.0
xx NaN
yy NaN
pandas是否提供了这样一种方法来引发一个键错误,而不是为不存在的标签返回一堆nan?在
这有点麻烦,但你可以这样做:
我认为您得到}返回与
NaN
,因为loc
或{reindex
相同的输出。见reindex versus ix。在从打开issue 10695选择“安全”的解决方案:
如果值不在} :
^{pr2}$index
中,返回错误的一个解决方案是使用^{如果列表中的索引不是初始
df
的一部分,.loc[]
将不允许您设置值所以你可以做一些类似的事情:
现在让我们测试一个虚拟索引:
^{pr2}$你会得到这个错误
相关问题 更多 >
编程相关推荐