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

403 перегляда

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

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

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

Дизайн

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

Зарплатний компас веб-дизайнера 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) — це зовнішній вигляд інтерфейсу: кольори, шрифти, кнопки, аніма

ШАГ логотип

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

Soft-skills

Перфекціонізм в роботі IT-спеціаліста: перевага чи пастка?

Перфекціонізм у роботі IT-спеціаліста — це подвійний меч: він допомагає створювати якісний код, але може затримувати дедлайни та викликати вигорання. Дізнайтеся, як керувати прагненням до ідеалу та перетворити його на свою перевагу.

У світі ІТ точність має вагу золота. Тут важлива кожна кома в коді, кожен тест, кожна секунда затримки в інтерфейсі. Тому перфекціонізм здається майже професійною чеснотою. Але чи завжди прагнення до ідеалу – це сила, а не пастка? Погляньмо на типовий приклад. Розробник працює над фічею, яка вже повністю функціонує. Але він не задоволений: хоче "переписати красивіше", оптимізувати цикл, переназвати змінні. Проєкт затримується. Команда чекає. Замовник нервує. А ідеальний код так і не потрапляє в реліз. Питання, яке варто поставити собі кожном�

ШАГ логотип

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

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