ML

5 незаменимых функций Pandas для Data Science

Перевод статьи «5 Must-Know Pandas Functions for Data Science».

Каждый проект из области data science начинается с анализа данных. Когда мы говорим об анализе данных, невозможно не упомянуть pandas – библиотеку Python, также известную как Panel Data Analysis.

В этой статье я поделюсь с вами важными функциями pandas, которые помогают осуществлять различные операции над датасетами.

Я буду работать с датасетом от Kaggle для предсказания цен на недвижимость. Скачать его можно здесь.

Сперва изучим наши данные.

import pandas as pd
df = pd.read_csv("House data.csv")

Вид датасета следующий. 

Так как это данные для предсказания цен на недвижимость, здесь учитывается количество комнат, ванные, этажность и другие факторы, способные повлиять на цену дома с различными особенностями.

Применим к этим данным некоторые функции pandas.

1. count()

Скажем, вам нужно быстро проверить, есть ли в таблице значения NaN. В этом случае мы можем воспользоваться функцией count() , которая посчитает количество ячеек, содержащих какое-либо число.

df.count()

Отличные новости: в нашем датасете нет NaN. Поэтому поместим значение NaN в одну ячейку и посмотрим, что изменится.

df.at[0,'price']= np.nan

Теперь, если я вызову count(), получу следующий результат:

[machinelearning_ad_block]

2. idxmin() и idxmax()

Эти функции возвращают индекс строки, удовлетворяющей определённому условию.

Скажем, нам нужно посмотреть подробную информацию о доме с наименьшей ценой. Существует множество способов сделать это с помощью других методов. Но функции idxmin() и idxmax() наиболее эффективны.

df.loc[df['price'].idxmin()]

Запустив этот код, я получу данные о жилье с минимальной ценой:

Это будет трёхкомнатная квартира в Федерал-Уэй с ценой 0.

Очевидно, что в данных ошибка, ведь мы тренируемся на open-source датасете. Но, думаю, суть вы уловили:) То же самое можно проделать с idxmax() , чтобы найти дом с наибольшей ценой.

Но что, если домов с минимальной/максимальной ценой окажется несколько? В этом случае функции возвращают первое вхождение. Далее в статье мы разберём и такой случай.

3. cut()

Допустим, у нас есть непрерывная переменная. Но, например, в рамках вашей задачи эту переменную необходимо рассматривать как категориальную.

Функция cut() поможет вам привести непрерывную переменную к виду дискретной, разбив весь диапазон значений на интервалы.

В нашем случае я хочу создать набор ценовых данных, поскольку значение цены колеблется от 0 до 26590000. Если я сгруппирую данные, с ними будет проще работать.

pd.cut(df["price"], 4)

Каждому интервалу можно также дать название.

Неплохо! Можно заменить соответствующую колонку ценой в новом формате или же добавить новый столбец.

4. pivot_table()

Если вы работали в excel, вы точно использовали эту функцию.

Допустим, нам нужно найти среднюю цену дома в каждом городе, основываясь на количестве комнат.

df.pivot_table(index="city" , columns="bedrooms" ,values="price" , aggfunc="mean")

Здесь вы можете заметить NaN, так как не в каждом городе есть двухкомнатные квартиры – также особенность нашего датасета.

5. nsmallest() и nlargest()

Мы уже научились использовать idxmin() и idxmax(), чтобы находить определённые значения. А что, если нужно найти три позиции с наибольшей ценой? Тут-то нам и пригодятся функции nsmallest() и nlargest().

df.nlargest(3, "price")[["city","price"]]
df.nsmallest(3, "price")[["city","price"]]

Замечательно! Теперь мы нашли три города, в которых есть дома с нулевой ценой:)

Заключение

Итак, мы познакомились с функциями pandas, которые станут отличными помощниками в решении ваших повседневных задач в области Data Science.

Надеюсь, статья вам понравилась. Спасибо за внимание!

Maria

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago