Ось чому Pandas є найпопулярнішою бібліотекою аналізу даних Python

Pandas — найпопулярніша бібліотека аналізу даних для Python. Він широко використовується аналітиками даних, дослідниками даних та інженерами машинного навчання.

Поряд з NumPy, це одна з бібліотек та інструментів, які необхідно знати кожному, хто працює з даними та ШІ.

У цій статті ми розглянемо Pandas і особливості, які роблять його таким популярним в екосистемі даних.

Що таке панди?

Pandas — це бібліотека аналізу даних для Python. Це означає, що він використовується для роботи та маніпулювання даними з вашого коду Python. За допомогою Pandas ви можете ефективно читати, маніпулювати, візуалізувати, аналізувати та зберігати дані.

Назва «Панди» походить від об’єднання слів «Панельні дані» — економетричного терміна, який стосується даних, отриманих у результаті спостереження за кількома людьми протягом певного часу. Pandas спочатку була випущена в січні 2008 року Весом Кінні, і з тих пір вона стала найпопулярнішою бібліотекою для свого використання.

В основі Pandas лежать дві важливі структури даних, з якими ви повинні бути знайомі, кадри даних і ряди. Коли ви створюєте або завантажуєте набір даних у Pandas, він представляється як одна з цих двох структур даних.

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

Ключові структури даних

Як згадувалося раніше, усі дані в Pandas представлені за допомогою однієї з двох структур даних: Dataframe або Series. Ці дві структури даних докладно пояснюються нижче.

Кадр даних

Цей приклад фрейму даних було створено за допомогою фрагмента коду в нижній частині цього розділу

Dataframe у Pandas — це двовимірна структура даних зі стовпцями та рядками. Це схоже на електронну таблицю у вашій програмі для роботи з електронними таблицями або на таблицю в реляційній базі даних.

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

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

  Як увімкнути підтримку Dropbox у файловому менеджері Dolphin

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

Фрейми даних також мають індекс, який використовується для посилань на рядки. Значення в різних стовпцях, але з однаковим індексом, утворюють рядок. За замовчуванням індекси пронумеровані, але їх можна перепризначити відповідно до набору даних. У прикладі (зображено вище, закодовано нижче) ми встановили стовпець індексу на стовпець «місяці».

import pandas as pd

sales_df = pd.DataFrame({
    'Month': ['January', 'February', 'March'],
    'Jane Doe': [5000, 6000, 5500],
    'John Doe': [4500, 6700, 6000]
})

sales_df.set_index(['Month'], inplace=True)

print(sales_df)

Серія

Цей приклад серії було створено з використанням коду в нижній частині цього розділу

Як обговорювалося раніше, ряд використовується для представлення стовпця даних у Pandas. Таким чином, серія є одновимірною структурою даних. Це на відміну від Dataframe, який є двовимірним.

Хоча ряд зазвичай використовується як стовпець у фреймі даних, він також може представляти повний набір даних самостійно, за умови, що набір даних має лише один атрибут, записаний в одному стовпці. Або, точніше, набір даних — це просто список значень.

Оскільки серія — це просто один стовпець, їй не обов’язково мати назву. Однак значення в серії проіндексовані. Подібно до індексу кадру даних, кадр даних серії може бути змінений із нумерації за замовчуванням.

У прикладі (зображено вище, закодовано нижче) індекс було встановлено на різні місяці за допомогою методу set_axis об’єкта Pandas Series.

import pandas as pd

total_sales = pd.Series([9500, 12700, 11500])
months = ['January', 'February', 'March']

total_sales = total_sales.set_axis(months)

print(total_sales)

Особливості гри Pandas

Тепер, коли ви маєте гарне уявлення про те, що таке Pandas і які ключові структури даних вона використовує, ми можемо розпочати обговорення функцій, які роблять Pandas такою потужною бібліотекою аналізу даних і, як наслідок, неймовірно популярною в Data Science та Machine Learning Екосистеми.

#1. Маніпулювання даними

Об’єкти Dataframe і Series є змінними. Ви можете додавати або видаляти стовпці за потреби. Крім того, Pandas дозволяє додавати рядки та навіть об’єднувати набори даних.

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

  Як перейти від SmartThings Classic до нової програми SmartThings

#2. Очищення даних

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

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

#3. Візуалізація даних

Цей графік було згенеровано за допомогою коду під цим розділом

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

За допомогою Pandas ви можете легко будувати стовпчасті діаграми, гістограми, матриці розсіювання та інші різні типи діаграм. Поєднайте це з деякими маніпуляціями з даними, які ви можете виконувати в Python, і ви зможете створювати ще складніші візуалізації для кращого розуміння ваших даних.

import pandas as pd

sales_df = pd.DataFrame({
    'Month': ['January', 'February', 'March'],
    'Jane Doe': [5000, 6000, 5500],
    'John Doe': [4500, 6700, 6000]
})

sales_df.set_index(['Month'], inplace=True)

sales_df.plot.line()

#4. Аналіз часових рядів

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

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

#5. Введення/виведення в Pandas

Pandas здатна зчитувати дані з найпоширеніших форматів зберігання даних. До них належать JSON, дампи SQL і CSV. Ви також можете записувати дані у файли в багатьох із цих форматів.

  8 найкращих платформ бізнес-аналітики (BI) і аналітики у 2022 році

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

#6. Інтеграція з іншими бібліотеками

Pandas також має багату екосистему інструментів і бібліотек, створених на її основі, щоб доповнити її функціональність. Це робить його ще більш потужною та корисною бібліотекою.

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

Розгляд продуктивності та ефективності в Pandas

Незважаючи на те, що Panda блищить у більшості операцій, вона може бути сумно повільною. Яскрава сторона полягає в тому, що ви можете оптимізувати свій код і підвищити його швидкість. Для цього ви повинні зрозуміти, як побудовані Pandas.

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

Векторизація — це форма розпаралелювання, коли одна і та сама операція застосовується до кількох точок даних одночасно. Це називається SIMD – одна інструкція, кілька даних. Використання переваг векторизованих операцій значно покращить швидкість і продуктивність Pandas.

Оскільки вони використовують масиви NumPy під капотом, структури даних DataFrame і Series працюють швидше, ніж їхні альтернативні словники та списки.

Стандартна реалізація Pandas працює лише на одному ядрі ЦП. Ще один спосіб пришвидшити ваш код — використовувати бібліотеки, які дозволяють Pandas використовувати всі доступні ядра ЦП. До них належать Dask, Vaex, Modin і IPython.

Спільнота та ресурси

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

Існують також онлайн-спільноти на таких платформах, як Reddit у субредітах r/Python і r/Data Science, де можна ставити запитання й отримувати відповіді. Будучи бібліотекою з відкритим кодом, ви можете повідомляти про проблеми на GitHub і навіть додавати код.

Заключні слова

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

Далі перевірте, як створити Pandas DataFrame.