Prijazen uvod v analizo podatkov v Pythonu

Z leti je uporaba pythona za podatkovno znanost neverjetno rasla in vedno bolj raste.


Podatkovna znanost je obsežno preučevalno področje z veliko podpolji, od katerih je analiza podatkov nedvomno eno najpomembnejših vseh teh področij, in ne glede na stopnjo usposobljenosti na področju podatkovnih podatkov postaja vse bolj pomembno razumevanje oz. imeti vsaj osnovno znanje o tem.

Kaj je analiza podatkov?

Analiza podatkov je čiščenje in preoblikovanje velike količine nestrukturiranih ali neorganiziranih podatkov s ciljem ustvarjanja ključnih vpogledov in informacij o teh podatkih, ki bi pomagali pri sprejemanju premišljenih odločitev.

Obstajajo različna orodja za analizo podatkov, Python, Microsoft Excel, Tableau, SaS itd., Vendar se v tem članku osredotočamo na to, kako poteka analiza podatkov v pythonu. Natančneje, kako je to storiti s knjižnico python, imenovano Pande.

Kaj je Panda?

Pandas je odprtokodna knjižnica Python, ki se uporablja za obdelavo podatkov in prepiranje. Hiter je in zelo učinkovit ter ima orodja za nalaganje več vrst podatkov v pomnilnik. Uporabite ga lahko za preoblikovanje, rezanje nalepk, indeksiranje ali celo združevanje več oblik podatkov.

Strukture podatkov v Pandah

V Pandah so 3 podatkovne strukture, in sicer;

  • Serija
  • DataFrame
  • Plošča

Najboljši način za razlikovanje teh treh je, da vidimo, da ena vsebuje več kopij druge. Torej je DataFrame kup nizov in Panel je kup DataFrames.

Serija je enodimenzionalni niz

Niz več serij naredi dvodimenzionalni DataFrame

Niz več DataFrames naredi tridimenzionalno ploščo

Struktura podatkov, s katero bi najbolj sodelovali, je dvodimenzionalni DataFrame, ki je lahko tudi privzeto sredstvo predstavitve za nekatere nabore podatkov, na katere lahko naletimo.

Analiza podatkov v Pandah

Za ta članek namestitev ni potrebna. Uporabljali bi orodje, imenovano sodelovanje ustvaril Google. To je spletno okolje python za analizo podatkov, strojno učenje in AI. To je preprosto oblak, ki temelji na računalniku Jupyter, ki je vnaprej nameščen s skoraj vsakim paketom python, ki bi ga potrebovali kot podatkovni znanstvenik.

Zdaj pa pojdi na https://colab.research.google.com/notebooks/intro.ipynb. Spodaj bi morali videti.

V zgornjem levem navigacijskem meniju kliknite možnost datoteke in kliknite možnost »nov prenosni računalnik«. V brskalniku bi bila naložena nova stran prenosnih računalnikov Jupyter. Prva stvar, ki jo moramo storiti, je uvoz pand v naše delovno okolje. To lahko storimo z izvajanjem naslednje kode;

uvozite pande kot pd

V tem članku bomo za analizo podatkov uporabili nabor podatkov o cenah stanovanj. Najdemo nabor podatkov, ki bi ga uporabljali tukaj. Prva stvar, ki bi jo želeli narediti, je naložiti ta nabor podatkov v naše okolje.

To lahko storimo z naslednjo kodo v novi celici;

df = pd.read_csv (‘https://firebasestorage.googleapis.com/v0/b/ai6-portfolio-abeokuta.appspot.com/o/kc_house_data.csv?alt=media &token = 6a5ab32c-3cac-42b3-b534-4dbd0e4bdbc0 ‘, sep =’, ‘)

.Read_csv se uporablja, kadar želimo prebrati datoteko CSV in smo posredovali lastnost sep, da pokažemo, da je datoteka CSV omejena z vejico..

Upoštevati moramo tudi, da je naša naložena datoteka CSV shranjena v spremenljivi df .

Ni nam treba uporabljati funkcije print () v Jupyter Notebook-u. V našo celico lahko preprosto vtipkamo ime spremenljivke in Jupyter Notebook nam ga bo natisnil.

To lahko preizkusimo tako, da v novo celico vpišemo df in zaženemo, da izpiše vse podatke v našem naboru podatkov kot DataFrame za nas.

Vendar ne želimo vedno videti vseh podatkov, včasih želimo videti tudi prvih nekaj podatkov in imena njihovih stolpcev. Funkcijo df.head () lahko uporabimo za tiskanje prvih petih stolpcev in df.tail () za tiskanje zadnjih petih. Rezultat katerega koli od obeh bi bil videti kot tak;

Radi bi preverili, kakšna so razmerja med temi več vrsticami in stolpci podatkov. Funkcija .describe () naredi točno to za nas.

 Zagon df.describe () daje naslednji izhod;

Takoj lahko vidimo, da .describe () poda povprečne vrednosti, standardni odklon, minimalne in največje vrednosti ter odstotke za vsak stolpec v DataFrame. To je še posebej koristno.

Prav tako lahko preverimo obliko našega 2D DataFrame in ugotovimo, koliko vrstic in stolpcev ima. To lahko storimo z uporabo df.shape, ki vrne nabor v obliki (vrstice, stolpci).

Prav tako lahko z df.column preverimo imena vseh stolpcev v našem DataFrame.

Kaj pa, če želimo izbrati samo en stolpec in vrniti vse podatke v njem? To se naredi na način, podoben rezanju po slovarju. V novo celico vnesite naslednjo kodo in jo zaženite

df [‘cena’]

Zgornja koda vrne stolpec s cenami, lahko gremo dlje, tako da ga shranimo v novo spremenljivko

cena = df [‘cena’]

Zdaj lahko izvajamo vsa druga dejanja, ki jih lahko izvajamo v DataFrame-u glede na spremenljivko cene, saj je le podvrsta dejanskega DataFrame-a. Lahko delamo stvari, kot so df.head (), df.shape itd..

Izberemo lahko tudi več stolpcev tako, da seznam imen stolpcev posredujemo v df kot tak

data = df [[‘cena’, ‘spalnice’]]

Zgoraj izbere stolpce z imeni “cena” in “spalnice”, če vtipkamo data.head () v novo celico, bi imeli naslednje

Zgornji način rezanja stolpcev vrne vse elemente vrstic v tem stolpcu, kaj pa, če želimo vrniti podskupino vrstic in podmnožico stolpcev iz našega nabora podatkov? To je mogoče storiti z uporabo .iloc in se indeksira na način, podoben seznamom python. Tako lahko naredimo nekaj takega

df.iloc [50:, 3]

Ki vrne 3. stolpec od 50. vrstice do konca. Je precej čeden in enako enak kot rezanje seznamov v pythonu.

Naredimo nekaj resnično zanimivih stvari, v našem naboru cen stanovanj je stolpec, ki nam pove ceno hiše, v drugem stolpcu pa je navedeno število spalnic, ki jih ima posamezna hiša. Cena stanovanja je stalna vrednost, zato je možno, da nimamo dveh hiš, ki bi imele enako ceno. Toda število spalnic je nekoliko diskretno, zato imamo lahko več hiš z dvema, tremi, štirimi spalnicami itd.

Kaj pa, če želimo dobiti vse hiše z enakim številom spalnic in najti povprečno ceno vsake diskretne spalnice? To je relativno enostavno storiti v pandah, vendar je to mogoče storiti kot takšno;

df.groupby (‘spalnice’) [‘cena’] .mean ()

Zgoraj najprej združimo DataFrame po naborih podatkov z identično številko spalnice s funkcijo df.groupby (), nato mu povemo, da nam damo samo stolpec spalnice in s pomočjo funkcije .mean () poiščemo sredino vsake hiše v naboru podatkov.

Kaj pa, če želimo zgoraj našteti? Želimo preveriti, kako se spreminja povprečna cena posamezne številke spalnice? Prejšnjo kodo moramo samo verižiti na .plot () funkcijo kot tako;

df.groupby (‘spalnice’) [‘cena’] .mean (). plot ()

Imeli bomo izhod, ki je videti kot tak;

Zgoraj nam kaže nekaj trendov v podatkih. Na vodoravni osi imamo ločeno število spalnic (upoštevajte, da lahko več hiš ima X število spalnic), na navpični osi imamo povprečje cen glede na ustrezno število spalnic na vodoravni os. Zdaj lahko takoj opazimo, da hiše, ki imajo od 5 do 10 spalnic, stanejo veliko več kot hiše s 3 spalnicami. Prav tako bo postalo očitno, da hiše, ki imajo približno 7 ali 8 spalnic, stanejo veliko več kot tiste, ki imajo 15, 20 ali celo 30 sob.

Podatki, kakršni so zgoraj, so zato zelo pomembne analize podatkov, zato lahko uporabimo vpogled v podatke, ki jih brez analize ni mogoče takoj ali povsem nemogoče opaziti.

Manjkajoči podatki

Predpostavimo, da vodim anketo, ki je sestavljena iz niza vprašanj. Povezavo do ankete delim s tisoči ljudi, da bi lahko dali svoje povratne informacije. Moj končni cilj je zagnati analizo podatkov na teh podatkih, da bom lahko iz teh podatkov dobil nekaj ključnih vpogledov.

Zdaj bi lahko marsikaj šlo narobe, nekateri anketiranci bi se lahko počutili neprijetno, ko bi odgovorili na nekatera moja vprašanja in ga pustili prazno. Veliko ljudi bi lahko storilo enako za več delov mojega vprašanja o raziskavi. To morda ne bi veljalo za problem, vendar si predstavljajte, če bi v svoji anketi zbiral številčne podatke in del analize je zahteval, da dobim bodisi vsoto, srednjo vrednost ali kakšno drugo aritmetično operacijo. Več manjkajočih vrednosti bi povzročilo veliko netočnosti v moji analizi, treba je najti način, kako najti te manjkajoče vrednosti z nekaterimi vrednostmi, ki bi jim lahko bile nadomestne.

Pande nam ponujajo funkcijo za iskanje manjkajočih vrednosti v DataFrame z imenom isnull ().

Funkcija isnull () se lahko uporablja kot taka;

df.isnull ()

To vrne DataFrame boolean-ov, ki nam pove, ali so bili podatki, ki so bili prvotno prisotni, resnično manjkali ali pa so napačno manjkali. Rezultat bi bil videti kot tak;


Potrebujemo način, da bomo lahko nadomestili vse te manjkajoče vrednosti, največkrat lahko izbiro manjkajočih vrednosti vzamemo kot nič. Včasih ga je mogoče jemati kot srednjo vrednost vseh drugih podatkov ali morda kot srednjo vrednost podatkov okoli njega, odvisno od podatkovnega strokovnjaka in primera podatkov, ki se analizirajo.

Za zapolnitev vseh manjkajočih vrednosti v DataFrameu uporabimo funkcijo .fillna (), ki se uporablja kot taka;

df.fillna (0)

Zgoraj napolnimo vse prazne podatke z vrednostjo nič. Lahko bi bila tudi katera koli druga številka, ki jo bomo določili.

Pomembnosti podatkov ni mogoče pretirano poudarjati, saj nam pomaga, da odgovore dobimo kar sami od svojih podatkov !. Za analizo podatkov pravijo, da je novo nafto za digitalne ekonomije.

Vse primere v tem članku najdete tukaj.

Če želite izvedeti več poglobljenega, si oglejte Analiza podatkov s spletnim tečajem Python in Pandas.

Oznake:

  • Python

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map