Комп'ютерна Академія 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

411 переглядів

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



Автор:

Редакція Академії ITSTEP

Освіта для дорослих

Дизайн

AI інструменти для дизайнерів: гід по ШІ-сервісах для графіки, UI/UX, відео та 3D

AI-інструменти роблять дизайн простим: графіка, макети сайтів, відео та 3D. Навчання, практичні поради та реальні приклади допоможуть швидко отримати перші результати

Сьогодні багато хто чує про “генеративний ШІ” і думає, що це щось складне, лише для програмістів. Насправді ж ці інструменти вже зараз можуть стати у пригоді школярам від 15 років, студентам, новачкам в ІТ та навіть тим, хто хоче кардинально змінити професію. Наприклад, якщо підліток мріє малювати комікси, ШІ допоможе швидко створити ескізи персонажів. Студент, який пробує себе у дизайні, може згенерувати стильні референси для першого портфоліо. Людина, що вирішила перекваліфікуватися з іншої сфери, здатна за допомогою ШІ швидко навчитися р

ШАГ логотип

Освіта для дорослих

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

Дизайн

Розробка програмного забезпечення

Зарплатний компас веб-дизайнера 2025: від Junior до Art Director

Яку зарплату отримують веб-дизайнери в Україні у 2025? Хто платить більше — українські компанії чи фриланс-клієнти? І як швидше перейти з Junior у Senior? Усе — в нашому гіді: цифри, поради, тренди та кар’єрні інсайти для майбутніх дизайнерів

Професія веб-дизайнера залишається однією з найбільш затребуваних у сфері інформаційних технологій навіть у 2025 році. І це зовсім не дивно: інтернет-присутність — більше не розкіш, а необхідність для бізнесів будь-якого масштабу. Веб-сайти, інтерфейси, мобільні застосунки потребують не лише функціональності, але й візуальної привабливості, зручності для користувача, адаптивності — саме за це відповідає веб-дизайнер. За останні роки роль дизайнера значно трансформувалась. Сьогодні це не просто "художник із Фотошопом", а фахівець, який роз�

ШАГ логотип

Освіта для дорослих

Soft-skills

Комп'ютерна графіка та дизайн

Хто такий світчер в ІТ індустрії: топ-7 історій зміни професії

Мрієте про нову професію в ІТ, але не знаєте, з чого почати? У нашій статті — хто такі світчери, як вони змінюють кар’єру, з чим стикаються на старті та 7 реальних історій українців, які доводять: увійти в ІТ можна в будь-якому віці та з будь-якого фаху

У сучасному світі технологій дедалі більше людей вирішують змінити професію та спробувати себе в ІТ-сфері. Таких людей прийнято називати «світчерами» — від англійського career switcher, що буквально означає «той, хто змінює кар’єру». Світчери — це люди, які не мали технічної освіти чи досвіду роботи в ІТ, але вирішили опанувати нову спеціальність у галузі цифрових технологій. Вони приходять у сферу з дуже різним професійним бекґраундом: хтось працював в освіті, хтось у сфері обслуговування, хтось займався мистецтвом, а хтось — агрономією чи ін�

ШАГ логотип

Дизайн

Мережі та кібербезпека

Зарплата UX/UI-дизайнера в Україні

Скільки заробляють UX/UI-дизайнери в Україні у 2025 році, які фактори впливають на зарплату та де шукати роботу. Корисні поради для початківців і огляд перспектив професії в популярній IT-галузі.

У сучасному цифровому світі успіх будь-якого вебсайту або мобільного застосунку багато в чому залежить не лише від його функціоналу, а й від зручності та привабливості для користувача. Саме за це відповідає UX/UI-дизайнер — фахівець, який поєднує у собі креативність, аналітичне мислення та розуміння людських потреб. UX (User Experience) — це досвід користувача. UX-дизайнер вивчає, як люди взаємодіють із продуктом, і створює логічні, інтуїтивно зрозумілі сценарії використання. UI (User Interface) — це зовнішній вигляд інтерфейсу: кольори, шрифти, кнопки, аніма

ШАГ логотип

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

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