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

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

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

ШАГ логотип

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

IT STEP Academy

11.08.2023

303 перегляда

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

Старт занять

Важливість тестування програмного забезпечення: типи, підготовка, інструменти

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

Програмне забезпечення – невід'ємна частина нашого повсякденного життя. Воно використовується скрізь: у комп'ютерах, телефонах, медичних пристроях, автомобілях тощо. Будь-які помилки в роботі програмного забезпечення можуть призвести до серйозних наслідків, таких як втрата даних, збої в роботі пристроїв та негативний вплив на безпеку. Саме тому тестування програмного забезпечення – вкрай важливий етап у розробці будь-якого продукту. Таке тестування включає перевірку працездатності продукту, його відповідність вимогам і специфік�

ШАГ логотип

Майстер клас

Введення в UI дизайн: створення ефективних та привабливих інтерфейсів

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

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

ШАГ логотип

Зустріч

Які soft skills розвиває вивчення програмування

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

Soft skills, або так звані гнучкі навички, відіграють дуже важливу роль у нашому сучасному суспільному та діловому середовищі. Це навички, які допомагають нам ефективно взаємодіяти з іншими людьми, успішно вирішувати проблеми та досягати своїх цілей. Вони включають такі якості, як комунікація, лідерство, креативність, адаптивність та багато іншого. Вивчення програмування не лише дає нам технічні вміння, а й  сприяє розвитку різних soft skills. Програмування вимагає аналітичного мислення, вирішення проблем, командної роботи та наполегливості. Роз

ШАГ логотип

Найновіші технології у розробці мобільних додатків: ТОП-інструменти та тренди

Мобільні програми стали вже невід'ємною частиною повсякденного життя. Вони допомагають нам робити покупки, спілкуватися з друзями, знаходити інформацію, розважатися. У зв'язку з цим розробка мобільних додатків стала затребуваним та перспективним напрямом у сфері IT.

Мобільні програми стали вже невід'ємною частиною повсякденного життя. Вони допомагають нам робити покупки, спілкуватися з друзями, знаходити інформацію, розважатися. У зв'язку з цим розробка мобільних додатків стала затребуваним та перспективним напрямом у сфері IT. Розробники мобільних програм прагнуть створювати продукти, які максимально відповідають потребам користувачів. У цій статті ми представимо огляд останніх трендів та інструментів, які використовуються для цього. Мови програмування для мобільних додатків Сучасні тех

ШАГ логотип

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

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