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")

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

p1

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

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

1. count()

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

df.count()
p2

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

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

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

p4
machine learning logo

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

×

2. idxmin() и idxmax()

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

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

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

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

p5

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

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

p6

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

3. cut()

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

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

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

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

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

p8

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

4. pivot_table()

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

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

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

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

5. nsmallest() и nlargest()

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

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

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

Заключение

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

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

machine learning logo

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

×