Prijateljski uvod u analizu podataka u Pythonu

Tijekom godina, upotreba pytona za znanost podataka nevjerojatno je porasla i svakodnevno raste.


Znanost podataka je ogromno polje proučavanja s puno pod-polja, od kojih je analiza podataka nesumnjivo jedno od najvažnijih svih ovih polja, i bez obzira na nečiju razinu vještine u znanosti podataka, sve je važnije razumjeti ili imati barem osnovno znanje o tome.

Što je analiza podataka?

Analiza podataka je čišćenje i transformacija velike količine nestrukturiranih ili neorganiziranih podataka s ciljem generiranja ključnih uvida i informacija o tim podacima koji bi pomogli u donošenju informiranih odluka..

Postoje različiti alati koji se koriste za analizu podataka, Python, Microsoft Excel, Tableau, SaS itd., Ali u ovom ćemo se članku usredotočiti na to kako se vrši analiza podataka u pythonu. Točnije, kako se to radi s bibliotekom pitona koja se zove pande.

Što je Panda?

Pandas je knjižnica Python otvorenog koda koja se koristi za manipulaciju podacima i rješavanje problema. To je brzo i vrlo učinkovito i ima alate za učitavanje nekoliko vrsta podataka u memoriju. Može se koristiti za preoblikovanje, označavanje rezača, indeksiranje ili čak grupiranje nekoliko oblika podataka.

Strukture podataka u pandama

U Pandama postoje 3 strukture podataka, naime;

  • Niz
  • DataFrame
  • Ploča

Najbolji način za razlikovanje ova tri je vidjeti kako jedan sadrži nekoliko hrpa drugog. Dakle, DataFrame je snop serija a Panel je skup DataFrames-a.

Serija je jednodimenzionalni niz

Niz nekoliko serija čini dvodimenzionalni DataFrame

Niz nekoliko DataFrames-a čini trodimenzionalnu ploču

Struktura podataka s kojom bismo najviše radili je dvodimenzionalni DataFrame koji također može biti zadani način reprezentacije za neke skupove podataka na koje možemo naići..

Analiza podataka u Pandama

Za ovaj članak nije potrebna instalacija. Koristili bismo alat koji se zove colaboratory stvorio Google. To je internetsko python okruženje za analizu podataka, strojno učenje i AI. To je jednostavno oblak baziran na Jupyter Notebook-u koji je predinstaliran s gotovo svim Python paketom koji će vam trebati kao znanstvenik podataka.

A sada idite na https://colab.research.google.com/notebooks/intro.ipynb. Trebali biste vidjeti dolje.

Navigacija u gornjem lijevom kutu kliknite mogućnost datoteke i kliknite na opciju “nova bilježnica”. Vidjeli biste novu stranicu bilježnica Jupyter učitanu u vaš preglednik. Prvo što trebamo učiniti je uvesti pande u naše radno okruženje. To možemo učiniti pokretanjem sljedećeg koda;

uvesti pande kao pd

U ovom ćemo članku koristiti analizu podataka o cijenama stanova za našu analizu podataka. Podaci podataka koji bismo koristili mogu se pronaći ovdje. Prvo što bismo željeli učiniti je učitati ovaj skup podataka u naše okruženje.

To možemo učiniti sa sljedećim kodom u novoj ćeliji;

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 koristi kada želimo pročitati CSV datoteku i prenijeli smo sep svojstvo kako bismo pokazali da je CSV datoteka ograničena zarezom..

Također treba napomenuti da je naša učitana CSV datoteka pohranjena u varijabli df .

Ne trebamo koristiti funkciju print () u Jupyterovoj bilježnici. U našu ćeliju možemo jednostavno upisati naziv varijable i Jupyter Notebook će nam to ispisati.

To možemo isprobati upisivanjem df-a u novu ćeliju i pokretanjem je ispisati sve podatke u našem skupu podataka kao DataFrame za nas..

No ne želimo uvijek vidjeti sve podatke, ponekad samo želimo vidjeti prvih nekoliko podataka i nazive njihovih stupaca. Funkciju df.head () možemo koristiti za ispis prvih pet stupaca, a df.tail () za ispis posljednjih pet. Izlaz bilo kojeg od njih dvoje izgledao bi kao takav;

Željeli bismo provjeriti odnose između tih nekoliko redaka i stupaca podataka. Funkcija .describe () radi upravo ovo za nas.

 Trčanje df.describe () daje sljedeći izlaz;

Odmah možemo vidjeti da .describe () daje srednje, standardno odstupanje, minimalne i maksimalne vrijednosti i postotke svakog pojedinog stupca u DataFrame-u. Ovo je osobito korisno.

Također možemo provjeriti oblik našeg 2D DataFramea da otkrijemo koliko redaka i stupaca ima. To možemo učiniti pomoću df.shape koji vraća tuple u formatu (redovi, stupci).

Također možemo provjeriti imena svih stupaca u našem DataFrameu pomoću df.column.

Što ako želimo odabrati samo jedan stupac i vratiti sve podatke u njega? To je učinjeno na način sličan presijecanju kroz rječnik. Unesite sljedeću šifru u novu ćeliju i pokrenite je

df [‘cijena’]

Gornji kôd vraća stupac cijena, a mi možemo ići dalje spremajući ga u novu varijablu

cijena = df [‘cijena’]

Sada možemo izvoditi sve druge radnje koje se mogu izvesti na DataFrame-u na našoj varijabli cijena od njegovog samo podskupina stvarnog DataFrame-a. Možemo raditi stvari poput df.head (), df.shape itd..

Mogli bismo odabrati i više stupaca tako što ćemo popis naziva imena stupaca prenijeti u df

data = df [[‘cijena’, ‘spavaće sobe’]]

Gore navedeno odabire stupce s imenima “cijena” i “spavaće sobe”, ako upišemo data.head () u novu ćeliju, imali bismo sljedeće

Gornji način rezanja stupaca vraća sve elemente retka u tom stupcu, što ako želimo vratiti podskup redaka i podskup stupaca iz našeg skupa podataka? To se može učiniti pomoću .iloc i indeksirano je na sličan način na Pitonskim popisima. Tako možemo učiniti nešto slično

df.iloc [50:, 3]

Koji vraća 3. stupac od 50. reda do kraja. Prilično je uredno i jednako isto kao i sječenje lista u pythonu.

Hajde da učinimo neke doista zanimljive stvari, u našem skupu podataka o cijenama stanova nalazi se stupac koji nam govori o cijeni kuće, a drugi stupac govori o broju spavaćih soba koje ta kuća ima. Cijena stanovanja je kontinuirana vrijednost, tako da je moguće da nemamo dvije kuće koje imaju istu cijenu. Ali broj spavaćih soba je pomalo diskretan, tako da možemo imati nekoliko kuća s dvije, tri, četiri spavaće sobe, itd.

Što ako želimo dobiti sve kuće s istim brojem spavaćih soba i pronaći srednju cijenu svake diskretne spavaće sobe? To je relativno lako učiniti u pandama, to se može učiniti kao takvo;

df.groupby (‘spavaće sobe’) [‘price’] .mean ()

Gornja prvo grupira DataFrame po skupovima podataka s identičnim brojem spavaće sobe pomoću funkcije df.groupby (), a zatim mi kažemo da nam daje samo stupac spavaće sobe i pomoću .mean () funkcije pronalazimo sredinu svake kuće u skupu podataka.

Što ako gore navedeno želimo vizualizirati? Željeli bismo moći provjeriti kako varira prosječna cijena svakog zasebnog broja spavaće sobe? Trebamo samo povezati prethodni kod na .plot () funkciju kao takvu;

df.groupby (‘spavaće sobe’) [‘price’] .mean (). plot ()

Imat ćemo izlaz koji izgleda kao takav;

Navedeno nam pokazuje neke trendove u podacima. Na vodoravnoj osi imamo različit broj spavaćih soba (imajte na umu da više kuća može imati X broj spavaćih soba), Na vertikalnoj osi imamo sredinu cijena s obzirom na odgovarajući broj spavaćih soba na vodoravnoj os. Sada možemo odmah primijetiti da kuće koje imaju između 5 i 10 spavaćih soba koštaju puno više od kuća s 3 spavaće sobe. Također će postati očito da kuće koje imaju oko 7 ili 8 spavaćih soba koštaju puno više od kuća s 15, 20 ili čak 30 soba.

Informacije poput gore su, zašto je analiza podataka vrlo važna, iz podataka možemo izvući koristan uvid u podatke koje nije moguće odmah ili potpuno nemoguće primijetiti.

Nedostaju podaci

Pretpostavimo da vodim istraživanje koje se sastoji od niza pitanja. Linku na anketu dijelim s tisućama ljudi kako bi mogli dati povratne informacije. Krajnji mi je cilj pokrenuti analizu podataka na ovim podacima kako bih mogao dobiti neke ključne uvide iz podataka.

Sada bi puno moglo poći po zlu, neki bi se geodeti mogli osjećati nelagodno da odgovore na neka od mojih pitanja i ostave to prazno. Puno ljudi bi moglo učiniti isto za nekoliko dijelova moje anketne teme. To se ne može smatrati problemom, ali zamislite da bih u svojoj anketi prikupljao numeričke podatke, a dio analize zahtijevao sam da dobijem ili zbroj, srednju ili neku drugu aritmetičku operaciju. Nekoliko nedostajućih vrijednosti dovelo bi do puno netočnosti u mojoj analizi, moram smisliti način kako pronaći i zamijeniti te vrijednosti koje nedostaju nekim vrijednostima koje bi im mogle biti bliska zamjena.

Pande nam pružaju funkciju pronalaska nedostajućih vrijednosti u DataFrame-u pod nazivom isnull ().

Funkcija isnull () može se koristiti kao takva;

df.isnull ()

Vraća se DataFrame boolean-a koji nam govori jesu li podaci izvorno prisutni tamo Doista nedostajali ili su pogrešno nedostajali. Izlaz bi izgledao kao takav;


Trebamo način da možemo zamijeniti sve te vrijednosti koje nedostaju, najčešće se izbor vrijednosti koje nedostaju može uzeti kao nula. Ponekad se može uzeti kao srednja vrijednost svih ostalih podataka ili možda kao sredina podataka oko njega, ovisno o znanstveniku podataka i slučaju uporabe podataka koji se analiziraju.

Za popunjavanje svih nedostajućih vrijednosti u DataFrame-u koristimo .fillna () funkciju koja se koristi kao takva;

df.fillna (0)

U gore navedenom, sve prazne podatke popunjavamo s nulom. Mogao bi biti i bilo koji drugi broj za koji ga specificiramo.

Važnost podataka ne može se pretjerano naglasiti, oni nam pomažu da odgovore dobijemo upravo iz naših podataka !. Analiza podataka kaže da je novo ulje za digitalnu ekonomiju.

Svi primjeri u ovom članku mogu se naći ovdje.

Da biste saznali više detalja, pogledajte Analiza podataka putem internetskog tečaja Python i Pandas.

OZNAKE:

  • Piton

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