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

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

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

ШАГ логотип

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

IT STEP Academy

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

12.07.2022

459 переглядів

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 Academy

Багато чого не зробиш, поки не вивчишся. Але багато треба зробити, щоб навчитись. Конфуцій

Soft skills

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

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

Маркетинг

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

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

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

ШАГ логотип

Soft skills

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

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

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

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

ШАГ логотип

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

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

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

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

ШАГ логотип

Soft skills

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

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

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

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

ШАГ логотип

Online ITStep

Цікаво переглянути історії наших випускників?

Детальніше

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

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