Проверьте, существует ли значение в индексе фрейма данных pandas


Я уверен, что есть очевидный способ сделать это, но не могу придумать, что пятно прямо сейчас.

в основном вместо того, чтобы поднимать исключение, я хотел бы получить True или False чтобы увидеть, если значение существует в панд .

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

df.loc['g']  # (should give False)

то, что я сейчас работаю, это следующее

sum(df.index == 'g')
4 70

4 ответа:

Это должно сделать трюк

'g' in df.index

просто для справки, поскольку это было то, что я искал, вы можете проверить наличие в значениях или индексе, добавив ".значения " метод, например

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

Я считаю, что добавление ".значения "для получения простого списка или ndarray out делает exist или" in " проверки выполняются более гладко с другими инструментами python. Просто подумал, что я мог бы бросить это там для людей.

мультииндекс работает немного отличается от одного индекса. Вот некоторые методы для multi-индексированные таблицы данных.

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 работает для первого уровня только при проверке одного значения Индекса.

'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")