Pandas opplæring i Python

Pandas opplæring i Python
I denne leksjonen om Python Pandas-biblioteket, vil vi se på forskjellige datastrukturer denne Python-pakken gir raske databehandlingsfunksjonaliteter som er effektive for dynamiske data og administrere komplekse operasjoner over flerdimensjonale data. I denne leksjonen vil vi stort sett dekke:
  • Hva er Pandas -pakken
  • Installasjon og komme i gang
  • Laster inn data fra CSV -er til Pandas DataFrame
  • Hva er DataFrame og hvordan fungerer det
  • Skiver Dataframes
  • Matematiske operasjoner over DataFrame

Dette ser ut som mye å dekke. La oss komme i gang nå.

Hva er Python Pandas -pakken?

I følge Pandas-hjemmesiden: Pandas er en åpen kildekode, BSD-lisensiert bibliotek som gir høyytelses, brukervennlige datastrukturer og dataanalyseverktøy for Python-programmeringsspråket.

Noe av det kuleste med pandaer er at det gjør lesedata fra vanlige dataformater som CSV, SQL osv. Veldig enkelt som gjør det like brukbart i produksjonskvalitetsapplikasjoner eller bare noen demo -applikasjoner.

Installer Python Pandas

Bare et notat før vi starter installasjonsprosessen, bruker vi et virtuelt miljø for denne leksjonen som vi laget med følgende kommando:

python -m virtualenv pandas
Kilde Pandas/Bin/Aktiver

Når det virtuelle miljøet er aktivt, kan vi installere Pandas -biblioteket i det virtuelle Env, slik at eksempler vi oppretter neste kan utføres:

Pip installer pandaer

Eller vi kan bruke Conda til å installere denne pakken med følgende kommando:

conda installer pandaer

Vi ser noe slikt når vi utfører kommandoen ovenfor:

Når installasjonen er fullført med Conda, vil vi kunne bruke pakken i Python -skriptene våre som:

Importer pandaer som PD

La oss begynne å bruke pandaer i skriptene våre nå.

Leser CSV -fil med Pandas Dataframes

Å lese en CSV -fil er enkelt med pandaer. For demonstrasjon har vi konstruert en liten CSV -fil med følgende innhold:

Navn, Rollno, Dato for opptak, nødkontakt
Shubham, 1,20-05-2012,9988776655
Gagan, 2.20-05-2009.8364517829
Oshima, 3.20-05-2003.5454223344
Vyom, 4,20-05-2009,1223344556
Ankur, 5.20-05-1999.9988776655
Vinod, 6.20-05-1999.9988776655
Vipin, 7.20-05-2002.9988776655
Ronak, 8,20-05-2007,1223344556
DJ, 9,20-05-2014,9988776655
VJ, 10.20-05-2015.9988776655

Lagre denne filen i samme katalog som i Python -skriptet. Når filen er til stede, legg til følgende kodebit i en Python -fil:

Importer pandaer som PD
Studenter = PD.read_csv ("studenter.CSV ")
studenter.hode()

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Hodet () -funksjonen i pandaer kan brukes til å vise et utvalg av data som er til stede i DataFrame. Vent, DataFrame? Vi vil studere mye mer om DataFrame i neste avsnitt, men bare forstå at en DataFrame er en N-dimensjonal datastruktur som kan brukes til å holde og analysere eller komplekse operasjoner over et sett med data.

Vi kan også se hvor mange rader og kolonner har gjeldende data:

studenter.form

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Merk at pandaer også teller antall rader som starter fra 0.

Det er mulig å få bare kolonnen i en liste med pandaer. Dette kan gjøres ved hjelp av indeksering i pandaer. La oss se på et kort kodebit for det samme:

student_names = studenter ['navn']
Student_names

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Men det ser ikke ut som en liste, gjør det? Vel, vi må eksplisitt kalle en funksjon for å konvertere dette objektet til en liste:

student_names = student_names.ramse opp()
Student_names

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Bare for ekstra informasjon, kan vi sørge for at hvert element i listen er unikt, og at vi bare velger ikke-tomme elementer ved å legge til noen enkle kontroller som:

student_names = studenter ['navn'].dropna ().unik().ramse opp()

I vårt tilfelle vil ikke utdataene endre seg, da listen allerede ikke inneholder noen foul verdier.

Vi kan også lage et dataaframe med rå data og passere kolonnenavnene sammen med det, som vist i følgende kodebit:

my_data = pd.Dataramme(
[
[1, "Chan"],
[2, "Smith"],
[3, "Winslet"]
],
kolonner = ["rang", "etternavn"]
)
my_data

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Skiver Dataframes

Å bryte ned dataframmer for å trekke ut bare de valgte radene og kolonnene er en viktig funksjonalitet for å holde oppmerksomhet mot nødvendige deler av data som vi trenger å bruke. For dette lar Pandas oss skive DataFrame når og når det er nødvendig med utsagn som:

  • ILOC [: 4 ,:] - velger de første 4 radene, og alle kolonnene for disse radene.
  • iloc [:,:] - den komplette DataFrame er valgt
  • iloc [5 :, 5:] - Rader fra posisjon 5 og utover, og kolonner fra posisjon 5 og utover.
  • iloc [:, 0] - Den første kolonnen, og alle radene for kolonnen.
  • ILOC [9 ,:] - Den 10. rad, og alle kolonnene for den raden.

I forrige seksjon har vi allerede sett indeksering og skiver med kolonnenavn i stedet for indeksene. Det er også mulig å blande skiver med indeksnumre og kolonnenavn. La oss se på et enkelt kodebit:

studenter.loc [: 5, 'navn']

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Det er mulig å spesifisere mer enn en kolonne:

studenter.Loc [: 5, ['Name', 'Emergency Contact']]

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Seriedatastruktur i pandaer

Akkurat som pandaer (som er en flerdimensjonal datastruktur), er en serie en endimensjon datastruktur i pandaer. Når vi henter en enkelt kolonne fra en DataFrame, jobber vi faktisk med en serie:

type (studenter ["Navn"])

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Vi kan konstruere vår egen serie også, her er et kodebit for det samme:

Series = PD.Serie (['Shubham', 3.7])
serie

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Som tydelig fra eksemplet over, kan en serie inneholde flere datatyper for samme kolonne også.

Boolean filtre i pandas dataaframe

Noe av det gode i pandaer er hvordan det er å hente ut data fra en dataframme basert på en tilstand. Som å trekke ut studenter bare når rullenummeret er større enn 6:

roll_filter = studenter ['rollno']> 6
roll_filter

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Vel, det er ikke det vi forventet. Selv om utgangen er ganske eksplisitt om hvilke rader tilfredsstilte filteret vi ga, men vi har fremdeles ikke de eksakte radene som tilfredsstilte det filteret. Viser seg det Vi kan bruke filtre som dataframindekser også:

Studenter [roll_filter]

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Det er mulig å bruke flere forhold i et filter slik at dataene kan filtreres på ett kortfattet filter, som:

next_filter = (studenter ['rollno']> 6) & (studenter ['name']> 's')
Studenter [Next_Filter]

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Beregne median

I en dataaframe kan vi også beregne mange matematiske funksjoner. Vi vil gi et godt eksempel på beregning av median. Medianen vil bli beregnet for en dato, ikke for bare tall. La oss se på et kort kodebit for det samme:

datoer = studenter ['Dato for opptak'].astype ('DateTime64 [ns]').kvantil (.5)
datoer

Når vi har kjørt ovennevnte kodebit, vil vi se følgende utdata:

Vi oppnådde dette ved først å indeksere datakolonnen vi har, og deretter gi en datatype til kolonnen slik at pandaer kan utlede den riktig når den bruker kvantitetsfunksjonen for å beregne median dato.

Konklusjon

I denne leksjonen så vi på forskjellige aspekter ved Pandas Processing Library som vi kan bruke med Python for å samle inn data fra forskjellige kilder til en dataframdatastruktur som lar oss sofistikerte operere på et datasett. Det lar oss også få underlaget data vi ønsker å jobbe med øyeblikkelig og gir mange matematiske operasjoner.

Del tilbakemeldingene dine på leksjonen på Twitter med @SBMaggarwal og @linuxhint.