Här är varför Pandas är det mest populära Python Data Analysis Library

Pandas är det mest populära dataanalysbiblioteket för Python. Det används flitigt av dataanalytiker, datavetare och maskininlärningsingenjörer.

Vid sidan av NumPy är det ett av biblioteken och verktygen som du måste känna till för alla som arbetar med data och AI.

I den här artikeln kommer vi att utforska Pandas och funktionerna som gör den så populär i dataekosystemet.

Vad är pandor?

Pandas är ett dataanalysbibliotek för Python. Det betyder att den används för att arbeta med och manipulera data från din Python-kod. Med Pandas kan du effektivt läsa, manipulera, visualisera, analysera och lagra data.

Namnet ”Pandas” kommer från att sammanfoga orden Panel Data, en ekonometrisk term som hänvisar till data som erhålls från att observera flera individer över tid. Pandas släpptes ursprungligen i januari 2008 av Wes Kinney, och det har sedan dess vuxit till att bli det mest populära biblioteket för sitt användningsfall.

I hjärtat av Pandas finns två viktiga datastrukturer som du bör känna till, Dataframes och Series. När du skapar eller laddar en datauppsättning i Pandas, representeras den som någon av dessa två datastrukturer.

I nästa avsnitt kommer vi att utforska vad de är, hur de är olika och när är det idealiskt att använda någon av dem.

Viktiga datastrukturer

Som nämnts tidigare representeras all data i Pandas med antingen en av två datastrukturer, en dataram eller en serie. Dessa två datastrukturer förklaras i detalj nedan.

Dataram

Denna exempeldataram producerades med hjälp av kodavsnittet längst ned i det här avsnittet

En Dataframe i Pandas är en tvådimensionell datastruktur med kolumner och rader. Det liknar ett kalkylblad i ditt kalkylprogram eller en tabell i en relationsdatabas.

Den består av kolumner och varje kolumn representerar ett attribut eller en funktion i din datauppsättning. Dessa kolumner består sedan av individuella värden. Denna lista eller serie av individuella värden representeras som ett serieobjekt. Vi kommer att diskutera seriedatastrukturen mer i detalj senare i den här artikeln.

Kolumner i en dataram kan ha beskrivande namn så att de kan skiljas från varandra. Dessa namn tilldelas när dataramen skapas eller laddas men kan enkelt döpas om när som helst.

Värdena i en kolumn måste vara av samma datatyp, även om kolumner inte behöver innehålla data av samma typ. Detta innebär att en namnkolumn i en datauppsättning endast kommer att lagra strängar. Men samma datauppsättning kan ha andra kolumner som ålder som lagrar ints.

Dataramar har också ett index som används för att referera till rader. Värden över olika kolumner men med samma index bildar en rad. Som standard är index numrerade men kan omtilldelas för att passa datamängden. I exemplet (bilden ovan, kodat nedan), ställer vi in ​​indexkolumnen till kolumnen ’månader’.

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)

Serier

Denna exempelserie producerades med koden längst ner i det här avsnittet

Som diskuterats tidigare används en serie för att representera en kolumn med data i Pandas. En serie är därför en endimensionell datastruktur. Detta till skillnad från en Dataframe som är tvådimensionell.

Även om en serie vanligtvis används som en kolumn i en dataram, kan den också representera en komplett datauppsättning på egen hand, förutsatt att datauppsättningen bara har ett attribut som registreras i en enda kolumn. Eller snarare, datasetet är helt enkelt en lista med värden.

Eftersom en serie bara är en kolumn behöver den inte ha ett namn. Värdena i serien är dock indexerade. Liksom indexet för en dataram kan dataramen för en serie ändras från standardnumreringen.

I exemplet (bilden ovan, kodat nedan) har indexet satts till olika månader med metoden set_axis för ett Pandas-objekt.

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)

Funktioner hos pandor

Nu när du har en god uppfattning om vad Pandas är och de nyckeldatastrukturer som den använder, kan vi börja diskutera funktionerna som gör Pandas till ett så kraftfullt dataanalysbibliotek och, som ett resultat, otroligt populärt inom Data Science och Machine Learning Ekosystem.

#1. Manipulation av data

Dataframe- och Series-objekten är föränderliga. Du kan lägga till eller ta bort kolumner efter behov. Dessutom låter Pandas dig lägga till rader och till och med slå samman datamängder.

Du kan utföra numeriska beräkningar, som att normalisera data och göra logiska jämförelser elementmässigt. Pandas låter dig också gruppera data och tillämpa aggregerade funktioner som medelvärde, medelvärde, max och min. Detta gör det enkelt att arbeta med data i Pandas.

#2. Datarengöring

Data som erhålls från den verkliga världen har ofta värden som gör det svårt att arbeta med eller inte idealiskt för analys eller användning i maskininlärningsmodeller. Data kan vara av fel datatyp, i fel format, eller så kan den bara saknas helt. Hur som helst behöver dessa data förbearbetas, så kallade rengöring, innan de kan användas.

Pandas har funktioner som hjälper dig att rensa dina data. I Pandas kan du till exempel ta bort dubblerade rader, släppa kolumner eller rader med saknade data och ersätta värden med antingen standardvärden eller något annat värde, som medelvärdet av kolumnen. Det finns fler funktioner och bibliotek som fungerar med Pandas för att du ska kunna göra mer datarensning.

#3. Datavisualisering

Den här grafen har skapats med koden under det här avsnittet

Även om det inte är ett visualiseringsbibliotek som Matplotlib, har Pandas funktioner för att skapa grundläggande datavisualiseringar. Och även om de är grundläggande, får de ändå jobbet gjort i de flesta fall.

Med Pandas kan du enkelt rita stapeldiagram, histogram, spridningsmatriser och andra olika typer av diagram. Kombinera det med vissa datamanipulationer du kan göra i Python, så kan du skapa ännu mer komplicerade visualiseringar för att bättre förstå din data.

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. Tidsserieanalys

Pandas stöder också arbete med tidsstämplade data. När Pandas känner igen en kolumn som att ha datetime-värden kan du utföra många operationer på samma kolumn som är användbara när du arbetar med tidsseriedata.

Dessa inkluderar att gruppera observationer efter tidsperiod och tillämpa aggregerade funktioner på dem, som summa eller medelvärde eller få de tidigaste eller senaste observationerna med min och max. Det finns naturligtvis många fler saker du kan göra med tidsseriedata i Pandas.

#5. Ingång/utgång i pandor

Pandas kan läsa data från de vanligaste datalagringsformaten. Dessa inkluderar JSON, SQL Dumps och CSV:er. Du kan också skriva data till filer i många av dessa format.

Denna förmåga att läsa från och skriva till olika datafilformat gör att Pandas sömlöst kan samverka med andra applikationer och bygga datapipelines som integreras väl med Pandas. Detta är en av anledningarna till att Pandas används flitigt av många utvecklare.

#6. Integration med andra bibliotek

Pandas har också ett rikt ekosystem av verktyg och bibliotek byggda ovanpå det för att komplettera dess funktionalitet. Detta gör det till ett ännu mer kraftfullt och användbart bibliotek.

Verktyg inom Pandas ekosystem förbättrar dess funktionalitet inom olika områden, inklusive datarensning, visualisering, maskininlärning, input/output och parallellisering. Pandas har ett register över sådana verktyg i sin dokumentation.

Överväganden om prestanda och effektivitet i pandor

Medan Pandas lyser i de flesta operationer, kan det vara notoriskt långsamt. Den ljusa sidan är att du kan optimera din kod och förbättra dess hastighet. För att göra detta måste du förstå hur Pandas är byggda.

Pandas är byggt ovanpå NumPy, ett populärt Python-bibliotek för numeriska och vetenskapliga beräkningar. Därför, precis som NumPy, fungerar Pandas mer effektivt när operationer vektoriseras i motsats till att plocka på enskilda celler eller rader med loopar.

Vektorisering är en form av parallellisering där samma operation tillämpas på flera datapunkter samtidigt. Detta kallas SIMD – Single Instruction, Multiple Data. Att dra fördel av vektoriserade operationer kommer att förbättra hastigheten och prestandan för Pandas dramatiskt.

Eftersom de använder NumPy-arrayer under huven, är DataFrame- och Series-datastrukturerna snabbare än deras alternativa ordböcker och listor.

Pandas standardimplementering körs på endast en CPU-kärna. Ett annat sätt att snabba upp din kod är att använda bibliotek som gör att Pandas kan använda alla tillgängliga CPU-kärnor. Dessa inkluderar Dask, Vaex, Modin och IPython.

Gemenskap och resurser

Eftersom Pandas är ett populärt bibliotek med det mest populära programmeringsspråket har Pandas en stor grupp användare och bidragsgivare. Som ett resultat finns det massor av resurser att använda för att lära sig hur man använder det. Dessa inkluderar den officiella Pandas-dokumentationen. Men det finns också otaliga kurser, handledningar och böcker att lära av.

Det finns också onlinecommunities på plattformar som Reddit i r/Python och r/Data Science subreddits för att ställa frågor och få svar. Eftersom du är ett bibliotek med öppen källkod kan du rapportera problem på GitHub och till och med bidra med kod.

Slutord

Pandas är otroligt användbart och kraftfullt som ett datavetenskapsbibliotek. I den här artikeln försökte jag förklara dess popularitet genom att utforska funktionerna som gör det till det bästa verktyget för datavetare och programmerare.

Kolla sedan in hur du skapar en Pandas DataFrame.