Pandas — это инструмент для вычисления данных, разработанный на языке программирования Python. Пандас используется для коммерческих целей, искусственного интеллекта — обработать большое количество переменных и структурировать в единую систему.
Проще говоря, Пандас — это большая таблица Excel для программиста. Вот как выглядит простая схема вычисления продаж компании в Pandas:
После ввода в Pandas данные структурируются в единую систему при помощи дополнительных команд.
В результате получаем таблицу со столбцами и строками.
Вся таблица с данными называется DataFrame. С его помощью аналитик может построить большую цепочку действий, не прибегая к старомодному Excel или другим программам.
Например — использовать дополнительную команду pandas (append). Она заменяет формат, представленный на картинке в одну строку. Pandas заранее запомнил большой набор данных и может представить его в простом варианте, через подобные команды.
Каждый столбец в датафрейм называется Series. Он отвечает за определенную категорию данных. В нашем примере это: общий доход (revenue), количество проданных предметов (items_sold) и новые клиенты (new_clients).
Вроде все просто: написал простую команду, добавил данные и все сохранилось в DataFrame. Но при работе с данными больше 1 ГБ (BigData) у аналитиков возникают ошибки. И некоторые трудно заметить, особенно новичку.
С обучающим вступлением закончили. Перейдем к 5 неочевидным ошибкам в Датафрейм и Пандас. А главное — как их решить, или не попадаться вовсе.
Вы работали с объемом больше, чем позволяет обработка данных в Python Pandas
У Пандас нет многопроцессорной поддержки и он медленно работает с большими наборами данных. Приходится тратить кучу времени в ожидании, пока библиотека прочитает множество файлов, агрегирует и вычислит функции.
Для эксперимента мы взяли пример пользователя из Интернета. Он загрузил в Пандас 10 файлов по 196 МБ каждый. И проверил, сколько времени займет обработка данных:
16 секунд на почти 2 ГБ памяти — это очень долго. А если программист работает с сотнями библиотек по 200 МБ, проводит 100-150 тестов? Весь рабочий день безрезультатно тратится на обработку данных.
Альтернатива — использование для BigData библиотеки Dask. Система продумана так, чтобы быстро структурировать большой объем данных. Посмотрите сами.
На операции Python в Dask с тем же объемом потребовалось 212 миллисекунд!
Затем структурированные данные можно отдельно загрузить и просчитывать в Пандас, так как он быстрее работает именно с маленькими библиотеками.
Pandas мог неправильно прочитать типы данных
Тип данных — внутреннее представление кода, которое Python использует для расшифровки: что хранить и как управлять данными, что отнимать, а на что делить и т.д. Например, чтобы получить сумму 5+10, или объединить несколько слов в одно.
Не очевидная ошибка в том, что между Pandas, Python и NumPy существует некоторое совпадение.
Сравнение типов данных
При импортировании csv. Пандас и NumPy одновременно могут возникать ошибки, ибо никто о типе данных не позаботился. Например:
Пользователь импортировал файлы в Пандас с разных библиотек, и при считывании типов данных произошла ошибка.
Разногласия нагружают оперативную память компьютера. Система могла работать быстрее, но мы ей помешали дополнительными библиотеками NumPy.
Советы по созданию единой базы данных
Так что сначала смотрим, что типы данных установлены правильно. Где есть ошибка — исправляем.
Стилизация базы данных через CSS
Некоторые аналитики добавляют в блокнотики стиль, цвет и визуализацию данных кодами CSS. С одной стороны – это полезно при обработке информации. Можно найти данные по цвету или категории. С другой — новичок, которые еще не освоил Пандас в совершенстве, может неправильно стилизовать таблицу. И получить ошибку при чтении.
Для стилизации данных используется параметр style. Вот пример одной из таких визуализаций в HTML-блокноте.
Некоторые числа выделены цветами CSS, чтобы не запутаться в BigData
О правильном использовании стайлеров в библиотеке Пандас мы подробно рассказываем на одном из уроков курса по Python от Академии STEP.
Мораль: не умеете управлять Pandas и CSS одновременно — это и не так важно! Стилизация уходит на второй план, когда страдает функционал. Сначала нужно учить основы, а уже по желанию — дополнения.
Чтение CSV занимает слишком много времени
CSV-файл — один из самых простых форматов для хранения таблиц. Поэтому его любят добавлять в библиотеку Пандас. Но чтение csv. занимает больше времени, чем других форматов. Посмотрите на пример:
Такая таблица — звено в цепочке BigData. А что если нужно прочитать и структурировать более 2000 аналогичных файлов?
В примере, приведенном разработчиками, стандартный csv. файл читался почти 3 минуты. Затем, для эксперимента использовали форматы parquet, feather, pickle. Результат — до 9 миллисекунд!
Мораль: попробуйте использовать другой формат файла при работе с BigData. Возможно, у вас получится сократить время считывания в Pandas. И сохранить нервы.
Да зачем читать руководства? Вот зачем
Ошибка новичка — сразу идти и делать, не читая фундаментальные материалы. К таким относятся мануалы по Python и Pandas.
Скачать руководство можно по ссылке
Да, это отнимет больше времени, чем хотелось бы. Желание пойти и что-то уже кодить берет вверх. А на проблемы ответ всегда найдется в интернете. Не совсем.
В руководстве Pandas подробно расписаны все ошибки, о которых мы говорили в сегодняшней статье. Даже есть отдельный раздел о работе с BigData: как правильно загружать данные, в каком формате и что писать, чтобы получить структурированный DataFrame.
Работе с Пандас, типами данных и других фишках Python мы учим в Академии STEP. Не нагружая вас тоннами литературы и руководств от разработчиков, понятно рассказываем о программировании. Закрепляем полученные знания на практике.
Уже через год наши ученики работают в компаниях, вроде IBM или eBay. Вы тоже можете стать частью команды иностранных разработчиков. Переходите на самый подробный курс по Python, чтобы не допускать ошибок новичка и стать настоящим профи.