Обычно при работе с библиотекой Pandas в Python возникает необходимость извлечения конкретного значения из ячейки в DataFrame. Допустим, есть условие, которое позволяет выбрать одну конкретную строку из DataFrame, и требуется получить значение из определенного столбца этой строки.
df_filtered = df[(df['column1']==value1) & (df['column2']==value2) & (df['column3']==value3)] value = df_filtered['target_column']
В результате выполнения этого кода в переменной value
будет храниться DataFrame, который содержит одну строку и один столбец, то есть одну ячейку. Однако, если требуется получить непосредственно значение этой ячейки, а не DataFrame, можно воспользоваться одним из следующих способов.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Использование метода iloc
Можно использовать метод iloc
, который позволяет получить доступ к элементу DataFrame по его числовому индексу:
value = df_filtered['target_column'].iloc[0]
В этом случае в переменной value
будет храниться значение первой (и единственной) строки извлеченного DataFrame.
Использование метода values
Еще один способ — использовать метод values
, который возвращает массив numpy со значениями DataFrame:
value = df_filtered['target_column'].values[0]
В этом случае в переменной value
также будет храниться значение первой строки извлеченного DataFrame, но в виде массива numpy.
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Использование функции squeeze
Функция squeeze
удаляет оси DataFrame с одним элементом:
value = df_filtered['target_column'].squeeze()
В этом случае в переменной value
будет храниться значение первой строки извлеченного DataFrame, и не требуется указывать индекс [0], так как функция squeeze
автоматически преобразует DataFrame с одним элементом в скалярное значение.
Добавить комментарий