Найти в Дзене
Программист о Data Science

День 3: Смотрим данные. Pandas

Оглавление

Как правило все начинается с данных. Данные могут быть в абсолютно разном формате, например в виде csv-файлов (достаточно распространённый случай).

Прежде чем двигаться дальше убедитесь, что вы зарегистрированы в kaggle и у вас установлен CLI клиент kaggle - <ссылка на kaggle нарратив>

Подробнее о том, что это такое можно почитая здесь.

Возьмём небольшой набор данных о студентах в формате CSV (comma separated values).

Файл StudentsPerformance.csv - то, что там нужно.
Файл StudentsPerformance.csv - то, что там нужно.

Читаем данные с помощью shell команд

Первое, что логично было бы сделать - посмотреть что это за данные. Сделать это можно по-разному. Самое простое это выполнить shell команду по отображению содержимого файла и Jupiter позволяет запускать shell команды прямо из ноутбука:

Относительный путь строится от той директории, из под каторой запущен Jupiter.
Относительный путь строится от той директории, из под каторой запущен Jupiter.

Читаем данные встроенными средствами Python

Далее мы определенно захотим данные как-то использовать, например для Data Exploratory Analysis (визуализировать данные на графиках, поискать проблемы, фичи, аномалии). Чтобы иметь возможность применять различные Python функции, хорошо бы прочитать файл в какую-нибудь структуру данных Python, например список.

Некоторые функции работы с файлами встроены в stdlib Python:

Результат такой же как и выше.
Результат такой же как и выше.
Описание из pydoc функции.
Описание из pydoc функции.
Читаем файл построчно, используя оператор.
Читаем файл построчно, используя оператор.

Далее можем строки разделить по символу запятой и получим двумерный массив распаршенных данных:

Теперь можем прочитать значение определенного параметра конкретного студента
Теперь можем прочитать значение определенного параметра конкретного студента

Pandas и DataFrame

Таблица - это наиболее распространненая форма текстовых данных. По хорошему было бы неплохо иметь возможность обращатся к колонкам по имени, иметь возможность более эффективной выборки и загрузки данных. Такая структура реализована в библиотеке Pandas и называется DataFrame. Эта библиотека настолько распространена, что многие ML framework'и умеют работать именно с Pandas'овскими DataFrame'ами.

Прежде чем использовать Pandas нужно загрузить его Python пакеты
Прежде чем использовать Pandas нужно загрузить его Python пакеты

Код чтения из CSV файла в DataFrame выглядит так:

для начала посмотрим какие колонки в файле
для начала посмотрим какие колонки в файле
выводим содержимое конкретной колонки
выводим содержимое конкретной колонки
размеры таблицы
размеры таблицы
базовая информация о DataFrame'е
базовая информация о DataFrame'е
Ну и посмотрим уже на выборку первых 10 записей
Ну и посмотрим уже на выборку первых 10 записей

Pandas "из коробки" умеет парсить csv и json. Так же можно создать DataFrame вручную.

Описываем колонки и начальные значения
Описываем колонки и начальные значения
Добавим новую строку
Добавим новую строку
Добавим новую колонку
Добавим новую колонку
Удалим строки по индексам
Удалим строки по индексам
Удалим колонку по имени
Удалим колонку по имени
Сохраним результат в виде csv файла
Сохраним результат в виде csv файла

Вместо заключения

DataFrame'ы Pandas дают много возможностей, например, по фильтрации и выборке данных. Вместо того, чтобы продолжить наполнять свой буффер информацией о наличии тех или иных фич Pandas, мы остановимся, осмыслим то, что узнали сегодня и вернемся к фичам Pandas по мере их прикладного использования дальше.