Технологии Blogger.

Как получить значение столбца по условию в Pandas?

В этой статье мы рассмотрим, как можно получить значения столбца из Pandas Dataframe по одному или нескольким условиям. Мы воспользуемся тремя основными способами, которые можно применять в ежедневной практике.

Как получить значение столбца по условию в Pandas?
Для нашей статьи создадим Dataframe с информацией о городах:
import pandas as pd
city_data = {
    'Город':['Москва', 'Казань', 'Владивосток', 'Санкт-Петербург', 'Калининград'],
    'Дата основания':['1147', '1005', '1860', '1703', '1255'],
    'Площадь':['2511', '516', '331', '1439', '223'],
    'Население':['11,9', '1,2', '0,6', '4,9', '0,4'],
    'Погода':['8', '8', '17', '9', '12'] }
city_df = pd.DataFrame(city_data)
city_df

Способ 1. Получение значения столбца Pandas по индексу

Для получения столбца по его индексу мы можем использовать метод iloc(). Методу в качестве параметров необходимо передать номера строк и номера столбцов, которые мы хотим отобрать.

Давайте получим содержимое столбца «Город». Для этого в качестве первого параметра метода iloc() указываем :, т.е. отбираем все строки, а в качестве второго - индекс нашего столбца, т.е. 0, так как нумерация столбцов в Pandas начинается с 0:

print(city_df.iloc[:,0])

Как получить значение столбца по условию в Pandas?

Способ 2. Получение значения столбца Pandas по условию

Давайте получим все значения столбца, у которого одно из значений равно «Казань». Для этого сначала можно создать переменную, которую мы будем дальше использовать как фильтр нашего Dataframe:
filter = (city_df == 'Казань').any()
Теперь применим этот фильтр к исходному Dataframe  при помощи метода loc() и посмотрим результат:
sub_df = city_df.loc[: , filter]
sub_df

Как получить значение столбца по условию в Pandas?

Способ 3. Получение значения столбца Pandas по нескольким условиям

Давайте отберем те столбцы, у которых в значениях есть «Казань» или «516». Для этого нам пригодится создание фильтра, как в способе 2 (см. выше), но теперь мы передадим в него два условия:
filter = ((city_df == 'Казань')|(city_df == '516')).any()
Каждое условие должно быть заключено в круглые скобки, а между ними должно быть логическое И или ИЛИ. В Pandas это знаки & и |, обратите внимание что команды and и or не поддерживаются в синтаксисе Pandas. Теперь применим фильтр к нашему Dataframe и отобразим результат:
sub_df = city_df.loc[: , filter]
sub_df
Как получить значение столбца по условию в Pandas?
Отлично, вы освоили способы получения значения столбцов в Pandas по условию. Эти, а также другие ваши знания о Pandas в частности и Python в целом могут позволить вам получить высокооплачиваемую должность Data Scientist. Узнать подробнее можно в курсе от Skillbox «Data Scientist с нуля до Junior».

Спасибо за внимание. Вам бонус за то, что дочитали статью до конца – ноутбук по этому уроку.

0 comments:

Отправить комментарий

Спасибо за комментарий.