测试 MultiIndex 中的值 [重复]

Posted

技术标签:

【中文标题】测试 MultiIndex 中的值 [重复]【英文标题】:Testing for a value in a MultiIndex [duplicate] 【发布时间】:2020-08-29 16:30:11 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

找到例如here

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

【讨论】:

以上是关于测试 MultiIndex 中的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Multiindex Pandas Dataframe中的多重赋值[重复]

如果列中的值在一组值列表中,则过滤数据框行[重复]

pandas中基于MultiIndex的索引[重复]

连接 3 级 MultiIndex [重复]

按特定索引值过滤具有 MultiIndex 的数据帧 [重复]

从具有多个切片的 pandas MultiIndex 中检索列 [重复]