检查pandas数据框索引中是否存在一个值
我相信有一个明显的方法来做到这一点,但现在不能想到任何浮油。
基本上,而不是引发exception,我想要得到True
或False
,看是否存在一个值在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")