检查pandas数据框索引中是否存在一个值

我相信有一个明显的方法来做到这一点,但现在不能想到任何浮油。

基本上,而不是引发exception,我想要得到TrueFalse ,看是否存在一个值在pandas df索引。

 df = pandas.DataFrame({'test':[1,2,3,4]}, index=['a','b','c','d']) df.loc['g'] # (should give False) 

我现在的工作是以下几点

 sum(df.index == 'g') 

这应该做的伎俩

 'g' in df.index 

仅供参考,因为它是我正在寻找的东西,您可以通过附加“.values”方法来testing值或索引内的存在性,例如

 g in df.<your selected field>.values g in df.index.values 

我发现添加“.values”来获得一个简单的列表或ndarray使得存在或“in”检查运行与其他python工具更顺利。 只是以为我会把它扔给那里的人。

多指标与单指标有点不同。 以下是多索引数据框的一些方法。

 df = pd.DataFrame({'col1': ['a', 'b','c', 'd'], 'col2': ['X','X','Y', 'Y'], 'col3': [1, 2, 3, 4]}, columns=['col1', 'col2', 'col3']) df = df.set_index(['col1', 'col2']) 

in df.index ,只有在检查单个索引值in df.index适用于第一级。

 'a' in df.index # True 'X' in df.index # False 

检查其他级别的df.index.levels

 'a' in df.index.levels[0] # True 'X' in df.index.levels[1] # True 

检查df.index索引组合元组。

 ('a', 'X') in df.index # True ('a', 'Y') in df.index # False 
 df = pandas.DataFrame({'g':[1]}, index=['isStop']) #df.loc['g'] if 'g' in df.index: print("find g") if 'isStop' in df.index: print("find a")