Vidste du, at pandaer kan gøre så meget?

Kod ikke Python uden først at udforske Pandas

Denne artikel beskriver alle de vigtigste funktionaliteter, som Pandas bibliotek tilbyder. Jeg vil demonstrere, hvor magtfuldt biblioteket er, og hvordan det kan spare dig for tid og kræfter, når du implementerer Python-applikationer.

Jeg har opdelt denne artikel i tre sektioner.

Foto af Element5 Digital på Unsplash

Hvis du vil forstå alt om Python-programmeringssprog, skal du læse:

Afsnit 1: Pandas introduktion

Dette afsnit introducerer læserne til Pandas-pakken, og det vil også fremhæve de tre vigtigste datastrukturer i biblioteket.

Hvad er Pandas?

  • Et af de mest anvendte Python-biblioteker til dataanalyse og teknik.
  • Implementeret i 2008 af Wes McKinney
  • Åben kilde
  • Implementeret på toppen af ​​C - derfor er det hurtigt
  • Introduceret til DataFrame-, serie- og panelobjekter

Hvordan installerer jeg pandaer?

Brug Python Package Installer Pip

pip installere pandaer

Hvad er en serie?

  • Serier er 1-dimensionelle i naturen, såsom en matrix. Serien er et mutabelt dataobjekt. Det betyder, at det kan opdateres, nye elementer kan tilføjes, og eksisterende emner kan slettes fra samlingen.
  • Det kan indeholde data af enhver art.
  • Det kan instantieres med en matrix eller en ordbog. Tasterne i ordbogen bruges til at repræsentere indekser.
  • Seriens konstruktør kan kaldes ved at videregive data, indeks, datatype og et boolskt flag, der angiver, om vi vil kopiere dataene. Hvis vi ikke specificerer indeksnavne, markeres indekserne som heltal fra 0.
  • Tænk på serier som lodrette kolonner, der kan indeholde flere rækker.

Sådan opretter du en serie

importer pandaer som pd
import numpy som np
serie = pd.Series (data = [111, 222, 3], index = ['en', 'to', 'tre'])
#eller endda
serie = pd.Series ([111, 222, 3])

Sådan hentes data fra serien

Vi kan anvende array splice og indeksfunktionalitet. Vi kan også indtaste indeksnavnet:

print (serie [ 'én'])
eller
print (serie [0])
#Multiple kolonner
print (serie [[ 'én', 'to']]

Hvad er en dataramme?

  • Eventuelt den mest anvendte datastruktur i et datavidensligt projekt.
  • Det er en tabel med rækker og kolonner - som en SQL-tabel eller Excel-regneark.
  • Tabellen kan gemme i hukommelsesdataobjekter i forskellige format.
  • Tilbyder højtydende tidsserier dataanalyse og teknik
  • En dataramme er en beholder i en eller flere serier.
  • DataFrame er mutable.

Dette billede skitserer, hvordan en dataramme ser ud:

Oprettelse af en DataFrame

Der er flere måder at oprette en DataFrame på; fra matrix, ordbog, liste, serier eller endda fra en anden dataramme. Jeg opretter normalt en DataFrame fra en serie:

importer pandaer som pd

d = {'ColumnA': pd.Series ([111, 222, 333])
   'Kolonne B': pd.Series ([444, 555, 666])}

df = pd.DataFrame (d)

Ovenstående dataramme vil indeholde to kolonner, der hedder KolonneA og KolonneB.

KolonneA vil indeholde tre rækker: 111.222 og 333.

Kolonne B vil indeholde tre rækker: 444.555 og 666

Valg af kolonne

Vi kan bruge kolonnenavnet til at hente dataene:

data = df ['KolonneA']

Hvis vi vil slette en kolonne, så brug pop-funktion.

Rækkevalg

Hvis en række har en etiket, kan vi bruge loc-funktion:

data = df.loc ['label']
# mangfoldige kolonner
data = df.loc [['label1', 'label2']]

Ellers kan vi også bruge lokationen ved hjælp af iloc-funktionen:

data = df.iloc [0] # dette returnerer den første række

Vi kan også bruge ix (), som lader os bruge etiketten og falder tilbage til heltal-positionsadgang. Bemærk: ix () er forældet.

Sletning

Hvis vi vil slette en række, så brug drop-funktion.

Når dataene indlæses i en DataFrame, kan vi anvende et antal rutiner, for eksempel kan kolonner flettes, ethvert antal matematiske beregninger kan anvendes på dataene og så videre. DataFrame giver os mulighed for at udføre Set-baserede operationer.

Hver kolonne indekseres.

Omdøb etiketter

Vi kan bruge omdøbe (kolonner, indeks, sted = falsk) til at omdøbe kolonnerne i en DataFrame. Hvis der er sted = sandt, omdøbes de underliggende data. Funktionen returnerer ikke et nyt objekt. Når der er placeret sted = falsk (standardværdi), udfører den handlingen og returnerer en kopi af objektet.

Reindex

Hvis du vil reindex (ændre række / kolonneetiketter), kan vi bruge reindex-funktionen

Iterating over DataFrame-kolonner

For at sløjfe over kolonner i en dataramme, kan vi gøre:

for kolonne i dataFrame:
  print (kolonne)

Vi kan også iterere over varerne:

for kolonne, poster i dataFrame.iteritems ():

Sådan gentages det over rækker:

for index_of_row, række i dataFrame.iterrows ():

itertuples () bruges til at vise hver række som et objekt:

for række i dataFrame.itertuples ():

DataFrame er meget kraftfuld. Vi kan nemt sortere emner efter rækker og kolonner.

Sortering efter rækker:

Vi kan sortere efter rækkeindeks ved at implementere:

sorted_dataFrame = dataFrame.sort_index ()
# vælg eventuelt de sorterede rækkeetiketter

Sortering efter kolonner:

Vi kan bruge sort_index (axis = 1) metode til at sortere efter kolonner.

Vi kan også bruge sorteringsværdier (efter = 'liste over kolonner') til at sortere efter et antal kolonner:

sorted_dataFrame = dataFrame.sort_values ​​(efter = 'ColumnA')

Strengebaserede funktioner kan også anvendes til kolonner / rækker i en dataramme, såsom nedre (), øvre (), len (), strip () osv.

Panel

Et panel har tre akser. Den første akse indeholder DataFrames. Den anden akse er kendt som hovedaksen, og den er indekset for hver af DataFrames. Den tredje akse er kolonnerne i hver af DataFrame.

Bemærk: Panelet er forældet. Multindex er en alternativ datastruktur.

importer pandaer som pd
import numpy som np

data = {'FirstDataFrame': pd.DataFrame (data),
   'SecondDataFrame': pd.DataFrame (data)}
p = pd.Panel (data)
Foto af tankekatalog på Unsplash

Afsnit 2: Pandas funktionalitet - skal vide

Dette afsnit giver et overblik over must know-funktionalitet, som Pandas tilbyder. Det vil være åbenlyst at se, at de fleste af de almindelige anvendelsestilfælde af datamanipulation kan håndteres af de grundlæggende funktionaliteter, som jeg vil skitsere her:

Læser CSV-fil

Lad os starte med den mest almindelige opgave at læse en csv-fil og oprette en dataramme ud af den:

importer pandaer som pd

dataramme = pd.read_csv ( "mycsv.csv", index_col = [ 'columna'])

Læsning af Excel-fil

Vi kan læse en Excel-fil i en dataramme:

pd.read_excel ('myExcel.xlsx', index_col = ['ColumnA'])

Vi kan også indlæse et ark i en dataramme:

pd.read_excel (åben ('myExcel.xlsx', 'rb'), sheet_name = 'Sheet1')

Hoved

Brug hoved (n) til at returnere de første n-poster

r = dataFrame.head (10) # returnerer de første 10 poster

Hale

Brug hale (n) til at returnere de sidste n poster

r = dataFrame.tail (10) # returnerer de sidste 10 poster

Transpose

Hvis du vil bytte rækker og kolonner, skal du bruge T-attributten

transponeret = dataFrame.T

Der er også nøgleattributter for en DataFrame såsom:

  • form - viser dimension af DataFarme
  • størrelse - antal varer
  • ndim - antal akser

Beskrive

Hvis du vil se en hurtig oversigt over din dataramme og ønsker at blive informeret om dens antal, middelværdi, standardafvigelse, minimum, maksimum og et antal percentiler for hver af kolonnerne i datarammen, skal du bruge metoden til at beskrive:

dataFrame.describe ()

DataFrame tilbyder også en række statistikfunktioner såsom:

  • abs () - Absolutte værdier
  • middelværdi () - Middelværdier. Det tilbyder også median (), tilstand ()
  • min () - minimumsværdi. Det tilbyder også max ()
  • tælle (), std () - standardafvigelse, prod () - for at beregne produkt af værdierne og cumsum () til beregning af kumulativ sum osv.
Nogle gange vil vi anvende vores egne brugerdefinerede funktioner

Tabelfunktion

Hvis du vil anvende en brugerdefineret funktion på alle kolonnerne i en datatabel, skal du bruge metoden pipe ():

def myCustom (a, b):
 return a-b
dataFrame.pipe (myCustom, 1) # sidste parameter er værdien af ​​b i myCustom

Række / søjle-funktion

Hvis du vil anvende en funktion på en række eller en kolonne, skal du bruge Apply ():

Dette anvender myCustom-funktion på alle kolonner:

def myCustom (a):
 return a-1
dataFrame.apply (myCustom)

Hvis du vil anvende en funktion på hver række:

sæt akse = 1 f.eks.

dataFrame.apply (myCustom, axis = 1)

Hvis du vil anvende en funktion på hver kolonne:

sæt aksen = 0 f.eks.

dataFrame.apply (myCustom, axis = 0)

Bemærk: standardparameterværdien for aksen er 0

Element Funktion

Vi kan bruge kortet () -funktionen på Series og Applymap () på en DataFrame:

dataFrame.applymap (myCustom)
Foto af Kaitlyn Baker på Unsplash

Afsnit 3: Pandas-funktionalitet: Datateknik

Pandas er et fantastisk bibliotek, når det gælder udførelse af datateknikopgaver. Dette afsnit indeholder detaljer om de vigtigste funktioner, som Pandas leverer.

For det første og vigtigst af alt, når vi arbejder med et datavidensligt projekt, står vi ofte over for manglende data. For at udfylde manglende data kan vi erstatte en tom værdi med en foruddefineret værdi, eller vi kan bruge bagud eller fremad udfyldning.

At kontrollere for manglende værdier

dataFrame.notnull ()

At slippe manglende værdier

dataFrame.dropna ()

Udfyldning af manglende værdier - direkte udskiftning

dataFrame.fillna (ScalarValue)

Vi kan også videregive en ordbog og bruge metoden erstatte () til at erstatte elementerne med den udskiftede værdi.

Udfyldning af manglende værdier - baglæns eller fremad

dataFrame.fillna (metode = 'backfill') # udfyldning til fremfyldning

Sammenligning af elementer i procent

Vi kan sammenligne elementer i en dataramme og beregne en procentvis ændring af hvert element med det forudgående element:

dataFrame.pct_change () # kolonnevis
dataFrame.pct_change (akse = 1) #row klogt

Beregning af standardafvigelse

Vi kan gøre std ** 2 for at finde varians af hver kolonne

dataFrame.std () #std i hver kolonne

Computing Covariance

Sådan beregnes samvariation mellem to kolonner i en dataramme:

dataFrame.cov () # mellem alle kolonner
dataFrame ['columnA']. cov (dataFrame ['columnB']) # mellem to kolonner

Computing Correlation

dataFrame.corr () # mellem alle kolonner
dataFrame ['columnA']. corr (dataFrame ['columnB']) # mellem to kolonner

Beregner rullende bevægende gennemsnit med vindue

For at beregne rullende vinduesgennemsnit kan her gennemsnit være et hvilket som helst statistisk mål for ethvert størrelsesvindue:

dataFrame.rolling (vindue = N) .median ()

Dette erstatter derefter den niende række og frem med medianen for de foregående N rækker.

Beregning af ekspanderende og eksponentielt vægtet gennemsnit

Vi kan også bruge ekspanderende () -metode til at udføre ekspanderende transformation.

Eksponentielt vægtet gennemsnit kan også beregnes ved hjælp af funktionen evm ():

dataFrame.ewm (dk = 0,5) .median ()

Aggregerer kolonner

Et antal funktioner kan anvendes på et antal kolonner i en DataFrame ved hjælp af den samlede funktion:

dataFrame.aggregate ({'ColumnName': funktion})

Gruppering af rækker

Vi kan bruge en gruppeby () -funktion:

groupedDataFrame = dataFrame.groupby ('ColumnName')
#multiple grupperingskolonner
groupedDataFrame = dataFrame.groupby (['ColumnA', 'ColumnB')

Sådan får du vist grupperne:

groupedDataFrame.groups

Sådan vælger du en gruppe:

groupedDataFrame.get_group (nøgle)

Filtrering

Vi kan udføre filter (funktion) for at filtrere posterne:

dataFrame.filter (myCustomFunction) #myCustomFunction indtaster en parameter og returnerer en værdi

Fletning

At slutte sig til to datarammer er sandsynligvis en af ​​de vigtigste datavidenskabelige opgaver. Pandas tilbyder en række fusionerende funktionaliteter, hvorved flere datarammer kan forbindes baseret på venstre, højre, fuld indre og ydre sammenføjning.

Den funktion, der skal flettes, kaldes fletning (), der tager venstre dataramme, højre dataramme og på parameter, der definerer hvilke kolonner, vi vil slutte sig til, og hvordan parameter skitserer sammenføjningen, f.eks. venstre, højre, ydre eller indre.

Bemærk: Hvis vi vil vælge forskellige kolonner i venstre og højre dataramme, kan vi bruge parametre left_on og right_on og specificere kolonnavnene. Kolonnerne kan være en liste over kolonner.

Eksempel:

fusioneret = pd.merge (venstre, højre, venstre_on = 'navn', højre_on = 'id', hvordan = 'venstre')

Unionens datarammer

Hvis du vil sammenkæde to datarammer, skal du bruge konkat () -funktion:

pd.concat ([en, to])

At beregne datoer

Pandas tilbyder en række funktioner til beregning af datoer i en dataramme. Vi kan bruge:

pd.date_range (start, slut)

Vi kan også videregive et antal frekvenser såsom forretningsdato, ugentligt, månedligt osv.

Plotter dataramme

Dataramme tilbyder en række grafiske plottemuligheder. Vi kan plotte, bokse plot, område, scatter plot, stablede diagrammer, søjlediagrammer, histogrammer osv.

dataFrame.plot.bar () # opretter et søjlediagram
dataFarme.diff.hist (bins = 10) # opretter et histogram
dataFrame.plot.scatter () #plotter et scatter-diagram

Hvis du vil forstå alt om Python-programmeringssprog, skal du læse:

Resumé

Denne artikel skitserede og gav en oversigt over et af de vigtigste pythonbiblioteker kendt som Pandas.

Det introducerede biblioteket og fremhævede derefter alle de centrale områder i biblioteket.

Fortæl mig venligst, hvis du har nogen feedback.

Håber det hjælper.