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. файл читався майже три хвилини. Потім, для експерименту використовували формати parquet, feather, pickle. Результат — до 9 мілісекунд!
Мораль: спробуйте використати інший формат файлу під час роботи з BigData. Можливо, у вас вийде скоротити час зчитування Pandas. І зберегти нерви.
Та навіщо читати посібники? Є причина
Помилка новачка — одразу йти і робити, не читаючи фундаментальних матеріалів. До таких відносяться мануали з Python та Pandas.
Завантажити посібник можна за посиланням
Так, це забере більше часу, ніж хотілося б. Бажання піти і щось уже кодити бере вгору. А на проблеми відповідь завжди знайдеться в інтернеті. Не зовсім.
У посібнику Pandas докладно розписано всі помилки, про які ми говорили у статті. Навіть є окремий розділ роботи з BigData: як правильно завантажувати дані, у якому форматі і що писати, щоб отримати структурований DataFrame.
Роботі з Пандас, типами даних та іншими фішками Python ми навчаємо в Академії STEP. Не навантажуючи вас тонами літератури та посібників від розробників, зрозуміло розповідаємо про програмування. Закріплюємо отримані знання практичними завданнями.
Вже за рік наші учні працюють у компаніях рівня IBM чи eBay. Ви також можете стати частиною команди іноземних розробників.
Перейдіть до найдетальнішого курсу Python, щоб не допускати помилок новачка і стати справжнім профі.