Ево зашто је Пандас најпопуларнија Питхон библиотека за анализу података

Пандас је најпопуларнија библиотека за анализу података за Питхон. У великој мери га користе аналитичари података, научници података и инжењери машинског учења.

Поред НумПи-а, то је једна од библиотека и алата које морате знати за свакога ко ради са подацима и АИ.

У овом чланку ћемо истражити Панде и карактеристике које их чине тако популарним у екосистему података.

Шта је Пандас?

Пандас је библиотека за анализу података за Питхон. То значи да се користи за рад и манипулисање подацима из вашег Питхон кода. Уз Пандас, можете ефикасно да читате, манипулишете, визуелизујете, анализирате и чувате податке.

Назив ‘Панде’ потиче од спајања речи Панел Дата, економетријске термина који се односи на податке добијене посматрањем више појединаца током времена. Пандас је првобитно издао Вес Кини у јануару 2008. и од тада је постао најпопуларнија библиотека за случај употребе.

У срцу Пандас су две основне структуре података са којима би требало да будете упознати, оквири података и серије. Када креирате или учитате скуп података у Пандас-у, он је представљен као једна од те две структуре података.

У следећем одељку ћемо истражити шта су, по чему се разликују и када је било који од њих идеалан.

Кључне структуре података

Као што је раније поменуто, сви подаци у Пандас-у су представљени помоћу једне од две структуре података, оквира података или серије. Ове две структуре података су детаљно објашњене у наставку.

Оквир података

Овај пример оквира података је направљен коришћењем исечка кода на дну овог одељка

Датафраме у Пандас-у је дводимензионална структура података са колонама и редовима. Слично је табели у вашој апликацији за табеларне прорачуне или табели у релационој бази података.

Састоји се од колона, а свака колона представља атрибут или функцију у вашем скупу података. Ове колоне се затим састоје од појединачних вредности. Ова листа или серија појединачних вредности је представљена као објекти серије. О структури података серије ћемо детаљније разговарати касније у овом чланку.

Колоне у оквиру података могу имати описна имена тако да се разликују једна од друге. Ова имена се додељују када се оквир података креира или учита, али се могу лако преименовати у било ком тренутку.

  Како уклонити позадину са слике и учинити је провидном

Вредности у колони морају бити истог типа података, иако колоне не морају да садрже податке истог типа. То значи да ће колона имена у скупу података чувати искључиво стрингове. Али исти скуп података може имати друге колоне као што је старост у којима се чувају инт.

Оквири података такође имају индекс који се користи за упућивање на редове. Вредности у различитим колонама, али са истим индексом, чине ред. Подразумевано, индекси су нумерисани, али се могу поново доделити да одговарају скупу података. У примеру (на слици изнад, кодирано испод), поставили смо колону индекса на колону „месеци“.

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)

Сериес

Ова серија примера је произведена коришћењем кода на дну овог одељка

Као што је раније поменуто, серија се користи за представљање колоне података у Пандас-у. Серија је, дакле, једнодимензионална структура података. Ово је у супротности са оквиром података који је дводимензионалан.

Иако се серија обично користи као колона у оквиру података, она такође може представљати комплетан скуп података за себе, под условом да скуп података има само један атрибут који је забележен у једној колони. Или боље речено, скуп података је једноставно листа вредности.

Пошто је серија једноставно једна колона, не мора да има име. Међутим, вредности у серији су индексиране. Као индекс оквира података, оквир података серије може се модификовати из подразумеваног нумерисања.

У примеру (на слици изнад, кодиран испод), индекс је постављен на различите месеце коришћењем методе сет_акис објекта Пандас серије.

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)

Карактеристике Панда

Сада када имате добру представу о томе шта је Пандас и кључне структуре података које користи, можемо почети да разговарамо о функцијама које Панде чине тако моћном библиотеком за анализу података и, као резултат тога, невероватно популарном у оквиру науке о подацима и машинског учења Екосистеми.

#1. Манипулација података

Објекти Датафраме и Сериес су променљиви. Можете додати или уклонити колоне по потреби. Поред тога, Пандас вам омогућава додавање редова, па чак и спајање скупова података.

  Топ 8 мало познатих корисних производа за пословање

Можете изводити нумеричка израчунавања, као што је нормализација података и прављење логичких поређења по елементима. Пандас вам такође омогућава да групишете податке и примените агрегатне функције као што су средња вредност, просек, максимум и мин. Ово чини рад са подацима у Пандас лаким.

#2. Чишћење података

Подаци добијени из стварног света често имају вредности које отежавају рад или нису идеалне за анализу или употребу у моделима машинског учења. Подаци могу бити погрешног типа података, у погрешном формату или једноставно могу потпуно недостајати. У сваком случају, овим подацима је потребна претходна обрада, која се назива чишћењем, пре него што се могу користити.

Пандас има функције које вам помажу да очистите своје податке. На пример, у Пандас-у можете да избришете дуплиране редове, испустите колоне или редове са недостајућим подацима и замените вредности подразумеваним вредностима или неком другом вредношћу, као што је средња вредност колоне. Постоји више функција и библиотека које раде са Пандас-ом како би вам омогућиле више чишћења података.

#3. Визуелизација података

Овај графикон је генерисан са кодом испод овог одељка

Иако то није библиотека визуелизације као што је Матплотлиб, Пандас има функције за креирање основних визуелизација података. И иако су основни, у већини случајева ипак обављају посао.

Са Пандас-ом можете лако да цртате тракасте графиконе, хистограме, матрице распршивања и друге различите врсте графикона. Комбинујте то са неким манипулацијама подацима које можете да урадите у Питхон-у и можете креирати још компликованије визуелизације да бисте боље разумели своје податке.

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. Анализа временских серија

Пандас такође подржава рад са временским ознакама података. Када Пандас препозна колону да има вредности датума и времена, можете извршити многе операције на истој колони које су корисне када радите са подацима временских серија.

То укључује груписање запажања према временском периоду и примену агрегатних функција на њих, као што су збир или средња вредност, или добијање најранијих или најновијих запажања помоћу мин и мак. Постоји, наравно, још много ствари које можете да урадите са подацима о временским серијама у Пандас.

#5. Улаз/излаз у Пандама

Пандас је способан да чита податке из најчешћих формата за складиштење података. То укључује ЈСОН, СКЛ Думпове и ЦСВ датотеке. Такође можете писати податке у датотеке у многим од ових формата.

  Како снимити екран у Убунту-у

Ова способност читања и писања у различите формате датотека података омогућава Пандас-у да неприметно сарађује са другим апликацијама и гради цевоводе података који се добро интегришу са Панда-ом. Ово је један од разлога зашто многи програмери нашироко користе Пандас.

#6. Интеграција са другим библиотекама

Пандас такође има богат екосистем алата и библиотека изграђених на врху како би употпунили његову функционалност. Ово је чини још моћнијом и кориснијом библиотеком.

Алати у оквиру Пандас екосистема побољшавају његову функционалност у различитим областима, укључујући чишћење података, визуелизацију, машинско учење, улаз/излаз и паралелизацију. Пандас одржава регистар таквих алата у својој документацији.

Разматрања о перформансама и ефикасности у Пандас

Док Панде сијају у већини операција, могу бити ноторно споре. Светла страна је што можете да оптимизујете свој код и побољшате његову брзину. Да бисте то урадили, морате разумети како су Панде изграђене.

Пандас је изграђен на врху НумПи-а, популарне Питхон библиотеке за нумеричко и научно рачунање. Стога, као и НумПи, Пандас ради ефикасније када су операције векторизоване за разлику од бирања појединачних ћелија или редова помоћу петљи.

Векторизација је облик паралелизације где се иста операција примењује на више тачака података одједном. Ово се назива СИМД – појединачна инструкција, више података. Коришћење предности векторизованих операција ће драматично побољшати брзину и перформансе Панда.

Пошто користе НумПи низове испод хаубе, структуре података ДатаФраме и Сериес су брже од њихових алтернативних речника и листа.

Подразумевана Пандас имплементација ради на само једном ЦПУ језгру. Други начин да убрзате свој код је да користите библиотеке које омогућавају Пандама да искористе сва доступна ЦПУ језгра. То укључује Даск, Ваек, Модин и ИПитхон.

Заједница и ресурси

Као популарна библиотека најпопуларнијег програмског језика, Пандас има велику заједницу корисника и сарадника. Као резултат тога, постоји много ресурса које можете користити да бисте научили како да га користите. Ово укључује званичну Пандас документацију. Али постоји и безброј курсева, туторијала и књига из којих можете учити.

Постоје и онлајн заједнице на платформама као што је Реддит у подредитима р/Питхон и р/Дата Сциенце за постављање питања и добијање одговора. Будући да сте библиотека отвореног кода, можете пријавити проблеме на ГитХуб-у, па чак и допринети коду.

Завршне речи

Пандас је невероватно корисна и моћна као библиотека за науку о подацима. У овом чланку покушао сам да објасним његову популарност истражујући карактеристике које га чине алатом за коришћење за научнике и програмере података.

Затим погледајте како да креирате Пандас ДатаФраме.