Комп'ютерна Академія IT STEP - повноцінна IT-освіта для дорослих і дітей. Ми навчаємо з 1999 року. Авторські методики, викладачі-практики, 100% практичних занять.

Ви використовуєте застарілий браузер!

Ваш браузер Internet Explorer, на жаль, є застарілим. Ця версія браузеру не підтримує багато сучасних технологій, тому деякі функції сайту можуть працювати з помилками. Рекомендуємо переглядати сайт за допомогою актуальних версій браузерів Google Chrome, Safari, Mozilla Firefox, Opera, Microsoft Edge

Black Friday

знижки на курси до 50%

09

дн

04

год

38

хв

ШАГ логотип

Неочевидні помилки в Python Pandas під час роботи з Big Data (великим об’ємом даних)

ITSTEP Academy

Програмування

12.07.2022

812 переглядів

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, щоб не допускати помилок новачка і стати справжнім профі.
 



Автор:

Редакція Компьютерної Академії IT STEP

Програмування

Графіка та дизайн

Маркетинг

Майстер клас

ТОП-10 найбільш затребуваних професій на дистанційній роботі у 2023 році

Світ змінюється з неймовірною швидкістю. Недавні події, такі як глобальні пандемії та технологічний бум, надали величезний вплив на ринок праці, прискорюючи перехід до цифрової економіки та трансформацію звичних робочих просторів.

Світ змінюється з неймовірною швидкістю. Недавні події, такі як глобальні пандемії та технологічний бум, надали величезний вплив на ринок праці, прискорюючи перехід до цифрової економіки та трансформацію звичних робочих просторів. Згідно з багатьма дослідженнями, дистанційна робота не лише стає новим стандартом, але й, можливо, залишиться ключовим елементом багатьох галузей у майбутньому. З такою різкою зміною пейзажу зайнятості багато професій, які раніше вважалися "офісними", сьогодні активно переходять в онлайн. Для тих, хто шукає ро

ШАГ логотип

Soft skills

Програмування

Пробний урок

Проблеми, з якими зіштовхуються початківці, коли вивчають програмування

Багато починаючих програмістів зіштовхуються з труднощами та питаннями, які можуть здатися непереборними на перший погляд. Можливо, ви відчуваєте затруднення з розумінням складних концепцій

Багато починаючих програмістів зіштовхуються з труднощами та питаннями, які можуть здатися непереборними на перший погляд. Можливо, ви відчуваєте затруднення з розумінням складних концепцій, загубилися в великому обсязі інформації, або, може бути, у вас виникли сумніви в своїх здібностях. Не хвилюйтеся, всі ці проблеми є природними на початковому етапі вивчення програмування. У цій статті ми намагатимемося допомогти вам розібратися з можливими проблемами та надамо практичні поради, які допоможуть вам подолати ці труднощі. Ми переконан

ШАГ логотип

Графіка та дизайн

10 сайтів для заробітку графічного дизайнера

Графічний дизайн - це творче та затребуване мистецтво, яке може приносити великий дохід. У цій статті ми розглянемо 10 популярних платформ, які пропонують дизайнерам унікальні можливості продажу своїх творінь.

Графічний дизайн - це творче та затребуване мистецтво, яке може приносити великий дохід. У цій статті ми розглянемо 10 популярних платформ, які пропонують дизайнерам унікальні можливості продажу своїх творінь. Від сайтів, що спеціалізуються на графічних дизайнах, до маркетплейсів із широким спектром категорій – кожна платформа надає дизайнеру зручні інструменти та потрібну аудиторію. На цих платформах дизайнери можуть продавати свої роботи у вигляді графічних елементів, ілюстрацій, шаблонів, логотипів та багато іншого. Будь-яка платфор

ШАГ логотип

Soft skills

Програмування

Побудова та розуміння алгоритмів: крок за кроком для новачків

Алгоритми відіграють ключову роль у світі програмування. Це фундаментальні інструменти для вирішення завдань та створення програм. Незалежно від вашого досвіду, уміння створювати ефективні алгоритми – невід'ємна навичка для програміста.

Алгоритми відіграють ключову роль у світі програмування. Це фундаментальні інструменти для вирішення завдань та створення програм. Незалежно від вашого досвіду, уміння створювати ефективні алгоритми – невід'ємна навичка для програміста. Крім програмування, алгоритми застосовуються в багатьох областях, починаючи від управління бізнес-процесами до побудови маркетингових стратегій. Без ефективних алгоритмів складно уявити сучасний світ технологій. Алгоритми дозволяють програмістам вирішувати завдання ефективніше та оптимізуват

ШАГ логотип

Цей сайт використовує Cookies

Політика конфіденційності