Основы Pandas — чтение файлов, DataFrame, отбор данных (часть 1)
Настоятельно рекомендуется самостоятельно писать весь код, который будет указан ниже в качестве примера. Все потому, что это практическое руководство. Надо не копировать, а именно переписывать самостоятельно.
Что нужно?
Изначально надо иметь версию Python хотя бы 3,7. Можно более новую. Помимо этого, должны быть установлены numpy, Pandas.
Далее надо подключиться к серверу. Если его нет, то можно создать локальный сервер, после чего запустить Jupyter. После этого открыть браузер, который подходит вам больше всего и открыть Jupyter Notebook. Далее создается ноутбук с названием pandas_tutorial_1 .
Далее надо импортировать numpy, pandas в Jupyter Notebook с использованием двух строчек кода.
Внимание! Чтобы обратиться к библиотеке, можно также воспользоваться аббревиатурой pd . Если в конце инструкции с import имеются as pd, Jupyter Notebook понимает, что в будущем, при вводе этих двух букв необходимо обратиться именно к библиотеке Pandas.
Теперь все настроено. Поэтому переходим к руководству по этой библиотеке. Начнем с вопроса, как правильно осуществлять открытие файлов с информацией с помощью этой библиотеки.
Открытие файла данных в Pandas
Хранение данных возможно в таблицах SQL либо в CSV-таблицах. Также есть вариант использования других форматов, в том числе, и Excel. Тем не менее, цель одинаковая. необходимо иметь структуру данных, которая будет совместимой с pandas.
Структуры данных в Python
Таких структур данных в Pandas есть две: Series и DataFrame.
Под первой подразумевается одномерная структура данных. В этом случае каждое значение имеет свой уникальный индекс.
А DataFrame уже считается двухмерной структурой. Это означает, что она состоит из колонок и строк. Каждый столбец имеет свое имя, а строка – индекс.
Выглядит такая структура данных следующим образом.
Сегодня мы более подробно будем рассматривать второй вариант. Почему? Дело в том, что обработку большей части информации значительно проще осуществлять в двухмерной структуре.
Как загрузить .csv-файл в DataFrame?
Чтобы это сделать, необходимо использовать функцию read_csv() . Давайте начнем с образца, называющегося zoo . В этом случае вам надо создать этот файл самостоятельно. Сырые данные следующие.
Теперь вернем ко вкладке Home Jupyter, чтобы сгенерировать новый текстовый файл.
После этого выполняем копирование информации выше, чтобы вставить данные в этот файл.
Теперь давайте вернемся в Jupyter Notebook с именем pandas_tutorial_1 , чтобы открыть в нем этот файл. Чтобы это сделать, необходимо воспользоваться функцией read_csv() .
Все, теперь файл zoo.csv был перенесен в pandas и стал двухмерной таблицей DataFrame. Слева расположены индексы, а источником для названий столбцов вверху служит первая строка файла zoo.csv.
В итоге, у нас получится такая таблица.
Здесь видим определенную проблему. На этот раз отсутствует заголовок, поэтому его настройку нужно выполнить самостоятельно. Для этого надо добавить в функцию параметры имен.
Видим, что такой вариант лучше. Теперь файл .csv загружен в pandas DataFrame уже окончательно.
При этом есть и альтернативный метод. Загрузка файла с данными возможна и напрямую через адрес URL. В этом случае загрузки информации на сервер не будет .
А на практике это выполняется следующим образом. Напишите такой код.
Если вам интересно, что в этом наборе, то это набор информации о путешествиях из специализированного блога. Ну а о том, какие сведения хранятся в колонках, очевидно из самой таблицы.
Как осуществлять отбор данных из базы в Pandas?
Начнем с самых простых вариантов, а потом уже перейдем к разбору более сложных.
Вывод всего Dataframe
Стандартный метод – осуществлять вывод всех данных из Dataframe на экран. Для этого нет необходимости в том, чтобы запускать функцию pd.read_csv() каждый раз. Достаточно просто сохранить сведения в переменную при чтении.
Затем можно вызывать значение article_read для вывода данных таблицы уже каждый раз.
Как осуществлять вывод части Dataframe?
В некоторых случаях может понадобиться не выводить Dataframe целиком, заполнив экран данными, которые и не нужны в конкретной ситуации, а выбрать несколько строк, которые и будут выводиться. Например, первые 5 из них можно вывести следующим образом.
Если же нужно вывести последние 5 строк, то это делается так.
Как вывести конкретные колонки из таблицы?
А это уже более сложная задача. Допустим, необходимо поставить на вывод исключительно колонки country и user_id . Что в этом случае нужно делать? Использовать такую команду.
А теперь вопрос: зачем здесь используются двойные квадратные скобки? На первый взгляд, ответ может быть довольно сложным, но логика, на самом деле, проста. Внешние скобки уведомляют pandas, что вы хотите выбрать колонки, а внутренние являют собой список. Да, самый обычный стандартный список Python, который всегда указывается в квадратных скобках.
Если мы заменим порядок имен колонок, результат вывода также будет другим. Это DataFrame выбранных колонок.
Внимание! В некоторых случаях необходимо получить доступ к объектам Series. Чтобы это сделать, есть один из следующих методов .
Как осуществить фильтрацию значений в таблице?
Этот шаг более сложный. Допустим, необходимо сохранить исключительно пользователей, представленных в источнике «SEO». Чтобы это сделать, надо выполнить фильтрацию по соответствующему значению. Для этого используется такая инструкция.
Использование функций одна за другой
Необходимо учитывать и то, что у Pandas логика линейная (точно такая же, как и в SQL). Следовательно, если вы применяете функцию, то возможно к ней применение другой же. В этом случае входящие данные последней функции будут выводом предыдущей. Например, давайте попробуем соединить эти два метода перебора.
С помощью первой строчки мы выбираем первые 5 строк из набора данных. Затем она выбирает колонки «country» и «user_id».
Есть ли возможность получения такого же результата, но используя другую цепочку функций? Конечно же!
Здесь сначала осуществляется выбор колонок, а затем берутся первые 5 строк. В результате, будет то же самое, просто будет отличаться порядок функций и особенности их выполнения.
А что будет, если заменить значение «article_read» на оригинальную функцию read_csv()?
Поэтому важно учитывать, что использование этой библиотеки подразумевает применение функций и методов последовательно, и ничего более.
Выводы
Таким образом, работать с Pandas не так сложно. Для начинающего data-scientist-а это очень простой инструмент, который при этом достаточно функциональный.
Введение в pandas: анализ данных на Python
Можно добавлять и новые строки: для этого нужно составить словарь с ключами — названиями столбцов. Если вы не укажете значения в каких-то столбцах, они по умолчанию заполнятся пустыми значениями NaN. Добавим еще одну страну под названием Country: