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