Панды величественно едят бамбук и очень хорошо спят в течение длительного времени. Но у них также есть секретная сила: поглощать большие наборы данных. Сегодня мы познакомим вас с одним из самых мощных и популярных инструментов обработки данных - Pandas!

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

Pandas - это библиотека Python с открытым исходным кодом, которая предоставляет простые в использовании высокопроизводительные структуры данных и инструменты анализа данных. Помимо Каддли, название происходит от термина панельные данные, который относится к многомерным наборам данных, встречающимся в статистике и эконометрике.

Чтобы установить pandas, просто запустите pip install pandas в среде Python. Тогда мы можем import pandas as pd.

Одна из самых распространенных вещей, для которых используется pandas, - это чтение файлов CSV с использованием pd.read_csv. Часто это отправная точка для использования панд.

pd.read_csv загружает эти данные в DataFrame. По сути, это можно рассматривать как таблицу или электронную таблицу. Мы можем быстро взглянуть на наш набор данных, вызвав head() в нашем Dataframe.

DataFrames содержат строки данных с именованными столбцами, которые в пандах называются «Серии».

Для меня одна из самых приятных вещей в Dataframe - это функция describe(), которая отображает таблицу статистики о вашем Dataframe. Это очень полезно для проверки работоспособности вашего набора данных, чтобы увидеть, выглядит ли распределение данных разумным и соответствуют ли свойства тем, которые вы ожидаете от них.

Я также иногда использую панды для перетасовки моих данных. Это может быть полезно в ситуациях, когда вы хотите перетасовать весь набор данных, а не просто иметь предварительный буфер при извлечении данных. Например, если ваши данные вообще не перемешиваются, а фактически сортируются, вам нужно будет дополнительно перемешать их.

Однако для действительно больших наборов данных, которые не помещаются в память, это может оказаться непрактичным без более сложных подходов.

Доступ к колонке

Чтобы получить доступ к определенному столбцу набора данных, используйте скобку, чтобы вытащить этот столбец, передав имя этого столбца. Если вам интересно, каковы возможные имена столбцов, вы можете вернуться к началу вывода .describe() или использовать.columns для доступа ко всем столбцам в DataFrame в виде массива.

Доступ по строкам

Доступ к строкам DataFrames немного отличается от столбцов. Например, если нам нужна строка с индексом i для данного DataFrame, мы можем использовать .iloc[i].

Имейте в виду, что Pandas работает по системе индексации, основанной на 0, поэтому первая строка на самом деле имеет индекс 0.

Столбцы и строки вместе

Иногда вам может понадобиться определенная строка и столбец. Поскольку доступ к строкам и столбцам осуществляется по-разному, для этого нам потребуется объединить описанные выше методы.

Вы также можете поменять местами и использовать csv_data.iloc[5][‘sepal_len’], но я считаю это менее читаемым.

Диапазоны строк и столбцов

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

На стороне столбцов способ получить несколько столбцов - передать массив имен столбцов.

Если имен столбцов больше, чем вы хотите ввести, вы можете использовать выходной массив csv_data.columns и выбрать оттуда диапазон имен столбцов, а затем использовать его для выбора столбцов.

Если мы хотим получить диапазон строк, мы используем двоеточие в скобках, следующих за .iloc:

Начальный индекс включен, а конечный индекс исключен. Обратите внимание на возвращенные индексы строки 5, 6, 7, 8 и 9, но не индекс строки 10.

Диапазон строк и столбцов вместе

Скажем, нам нужны оба - подмножество столбцов и подмножество строк. Как бы это выглядело? Мы можем объединить все методы, которые мы использовали до сих пор, и создать одно выражение, которое выполнит свою работу.

Сначала выберите имена столбцов, как и раньше:

cols_2_4 = csv_data.column[2:4]

Дальше получаем столбцы:

df_cols_2_4 = df[cols_2_4]

Теперь выберите строки из этого DataFrame:

df_cols_2_4.iloc[5:10]

Как только вы освоитесь, вы начнете сворачивать эти переменные в одно выражение, примерно так:

csv_data[csv_data.columns[2:4]].iloc[5:10]

Я призываю вас остановиться здесь и посмотреть, насколько это выражение эквивалентно тому, что мы только что показали выше. Я все еще буду здесь, когда ты вернешься.

Подведение итогов

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

До сих пор мы рассмотрели некоторые простые манипуляции с DataFrame, но экосистема pandas предлагает гораздо больше, от эффективного хранения файлов в форме PyTables и формата HDF5 до выполнения различных статистических анализов.

Выходи и попробуй панд в дикой природе!

Спасибо, что прочитали этот выпуск Cloud AI Adventures. Если вам нравится этот сериал, дайте мне знать, хлопнув по статье. Если вы хотите больше машинного обучения, обязательно подпишитесь на я на Medium или подпишитесь на канал YouTube, чтобы отслеживать будущие выпуски по мере их выхода. Скоро к вам будут добавлены новые серии!