Как получить значение ячейки в Pandas?

Самый быстрый и эффективный способ получить значение ячейки в Pandas — это воспользоваться одним из методов: at или iat. В данном случае Вы получите одно скалярное значение, расположенное в обозначенной ячейке. Кроме того, Вы можете использовать методы loc и iloc — они работают медленней, но позволяют получить несколько значений из выбранного диапазона ячеек.

Рассмотрим каждый из этих способов подробнее:

Как получить значение ячейки с помощью методов at и iat?

Сразу перейдем к практическому примеру. Из приведенной ниже таблицы «bd» выведем на экран Ванину оценку по математике:

Исходная таблица bd (Как получить значение ячейки в Pandas?)
Исходная таблица bd
Узнаем оценку с помощью метода at:
bd.at['Ваня', 'Математика']
Вывод на экран: 5  

Для получения значения ячейки в квадратных скобках перечисляем названия строки и столбца, на пересечении которых находится искомая ячейка.

Узнаем оценку с помощью метода iat:
bd.iat[2, 0]
Вывод на экран: 5  

Мы получили значение 5, находящееся на пересечении строки индексом 2 и столбца с нулевым индексом.

Чем отличаются методы at и iat?

Думаю, из приведенных выше примеров Вы догадались, что метод at выводит значение ячейки по названиям строки и столбца, а метод iat — по их индексам (нумерация индексов начинается с нуля).

Как получить значение ячейки в Pandas с помощью методов loc и iloc?

Методы loc и iloc требуют больше ресурсов для выполнения, но позволяют получить сразу несколько значений. Рассмотрим работу этих методов на практическом примере. Из таблицы bd, содержащей оценки учеников по разным предметам, сначала выведем на экран Машину оценку по физике, а затем — оценки Маши, Саши и Вани по физике:

Таблица bd
Таблица 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!»


Добавить комментарий