首页 > 解决方案 > 测试 MultiIndex 中的值

问题描述

我有一个带有大型 MultiIndex 的熊猫数据框。我正在从此数据框中选择具有索引中各种元数据的列,例如

current_row = df.xs(number, level='counter', drop_level=False, axis=1)

到目前为止,一切都很好。但是,number来自一个可能包含未包含在counter索引级别中的数字的列表,因此上述显然失败并出现 KeyError。

那么有什么方法可以测试我的号码是否存在,以便我可以继续使用该号码,或者引发自定义错误并继续使用下一个号码?

isin听起来这将是我需要的,但我无法让它在我的 Multiindex 上工作。

标签: pandasmulti-index

解决方案


再次尝试使用一些不同的关键字进行搜索*,当然这很容易完成in

if number in df.columns.get_level_values('counter'):
    #do stuff
else:
    #print my custom error

例如在这里找到

*当这种情况发生时,我讨厌它。您在简单的事情上花费了太多时间,最后屈服并发布了一个愚蠢的问题,然后您脑残并无论如何都解决了它,当然这很简单。哦,好吧……</p>


推荐阅读