Самый быстрый и эффективный способ получить значение ячейки в Pandas — это воспользоваться одним из методов: at
или iat
. В данном случае Вы получите одно скалярное значение, расположенное в обозначенной ячейке. Кроме того, Вы можете использовать методы loc
и iloc
— они работают медленней, но позволяют получить несколько значений из выбранного диапазона ячеек.
Рассмотрим каждый из этих способов подробнее:
- Получим значение ячейки с помощью методов
at
илиiat
(это лучший вариант, если Вам нужно получить значение только из одной ячейки) - Получим значение ячейки с помощью методов
loc
илиiloc
(этот вариант хорошо подходит для получения значений из диапазона ячеек!).
Как получить значение ячейки с помощью методов at
и iat
?
Сразу перейдем к практическому примеру. Из приведенной ниже таблицы «bd» выведем на экран Ванину оценку по математике:

Узнаем оценку с помощью метода at
:
bd.at['Ваня', 'Математика']
Вывод на экран: 5
Для получения значения ячейки в квадратных скобках перечисляем названия строки и столбца, на пересечении которых находится искомая ячейка.
Узнаем оценку с помощью метода iat
:
bd.iat[2, 0]
Вывод на экран: 5
Мы получили значение 5, находящееся на пересечении строки индексом 2 и столбца с нулевым индексом.
Чем отличаются методы at
и iat
?
Думаю, из приведенных выше примеров Вы догадались, что метод at
выводит значение ячейки по названиям строки и столбца, а метод iat
— по их индексам (нумерация индексов начинается с нуля).
Как получить значение ячейки в Pandas с помощью методов loc
и iloc
?
Методы loc
и iloc
требуют больше ресурсов для выполнения, но позволяют получить сразу несколько значений. Рассмотрим работу этих методов на практическом примере. Из таблицы bd
, содержащей оценки учеников по разным предметам, сначала выведем на экран Машину оценку по физике, а затем — оценки Маши, Саши и Вани по физике:

Получим значение ячейки / диапазона ячеек с помощью метода loc
:
1. Выведем на экран Машину оценку по физике:
bd.loc['Маша', 'Физика']
Вывод на экран: 4
Для вывода значения определенной ячейки, в квадратных скобках нужно указать имена строки и столбца.
2. Выведем на экран оценки оценки Маши и Вани по рисованию и физике:
bd.loc[['Маша', 'Ваня'], 'Рисование':'Физика']
Вывод на экран:

Так как искомые строки не являются соседними, то мы не можем использовать срез для их выбора, поэтому просто перечислим названия этих строк в квадратных скобках. Для получения значений из столбцов воспользуемся срезом.
Получим значение ячейки / диапазона ячеек с помощью метода iloc
:
1. Выведем на экран Машину оценку по физике:
bd.iloc[0, 2]
Вывод на экран: 4
Для вывода значения определенной ячейки, в квадратных скобках нужно указать индексы строки и столбца. В нашем случае искомое значение находится на пересечении нулевой строки и столбца с индексом 2.
2. Выведем на экран оценки оценки Маши и Вани по рисованию и физике :
bd.iloc[[0, 2], 1:3]
В результате получим таблицу:

0, 2 — это индексы искомых строк;
1:3 — срез по столбцам, который позволит получить значения 1 и 2 столбца (крайнее правое значение 3 в срезе не учитывается).
Чем отличаются методы loc
и iloc
?
Метод loc
выводит значение ячейки или группы ячеек по названиям строк и столбцов, а метод iloc
— по их индексам (нумерация индексов начинается с нуля).
Подведем итог!
Если Вам нужно получить значение только одной ячейки из Pandas таблицы, рекомендую использовать метод at
для поиска ячейки по названиям строки и столбца, либо метод iat
для поиска по индексам строки и cтолбца.
Для выбора сразу нескольких значений из таблицы Pandas используйте метод loc
(для поиска ячеек по названиям строк и столбцов), либо iloc
(для поиска значений по индексам строк и столбцов). Эти методы также подходят для получения значения одной ячейки, однако они проигрывают в скорости методам at
и iat
.
У нас появился Telegram-канал для изучающих Python! Присоединяйтесь: вместе «питонить» веселее! 😉 Ссылка на канал: «Кодим на Python!»