Sõbralik sissejuhatus andmete analüüsimisse Pythonis

Aastate jooksul on pitoni kasutamine andmeteaduses uskumatult kasvanud ja kasvab iga päevaga.


Andmeteadus on laiaulatuslik õppevaldkond, kus on palju alamvaldkondi, millest andmete analüüs on vaieldamatult kõigi nende valdkondade kõige olulisem ning sõltumata andmeteaduse oskuse tasemest on muutunud üha olulisemaks mõistmine või omama vähemalt põhiteadmisi sellest.

Mis on andmete analüüs?

Andmeanalüüs on suure hulga struktureerimata või organiseerimata andmete puhastamine ja muundamine eesmärgiga koguda nende andmete kohta peamisi teadmisi ja teavet, mis aitaks teha teadlikke otsuseid.

Andmeanalüüsis kasutatakse mitmesuguseid tööriistu, Python, Microsoft Excel, Tableau, SaS jne, kuid selles artiklis keskendume sellele, kuidas andmete analüüs Pythonis toimub. Täpsemalt, kuidas seda tehakse pythoni raamatukoguga, mida nimetatakse Pandad.

Mis on Pandas?

Pandas on avatud lähtekoodiga Pythoni teek, mida kasutatakse andmete manipuleerimiseks ja segamiseks. See on kiire ja väga tõhus ning sellel on tööriistad mitmesuguste andmete mällu laadimiseks. Seda saab kasutada andmevormide ümberkujundamiseks, osade sildistamiseks, indekseerimiseks või isegi rühmitamiseks.

Andmestruktuurid Pandas

Pandas on 3 andmestruktuuri, nimelt;

  • Sari
  • DataFrame
  • Paneel

Parim viis nende kolme eristamiseks on näha, et üks sisaldab mitut korstnat teisest. Nii et DataFrame on sarja virna ja paneel on DataFramesi virna.

Seeria on ühemõõtmeline massiiv

Mitme seeria virn teeb kahemõõtmelise DataFrame’i

Mitme DataFrameni virn teeb kolmemõõtmelise paneeli

Andmestruktuur, millega me kõige rohkem töötaksime, on kahemõõtmeline DataFrame, mis võib olla ka vaikimisi esitusviis mõnele andmekogumile, millega võime kokku puutuda.

Andmete analüüs Pandas

Selle artikli jaoks pole installimist vaja. Me kasutaksime tööriista nimega koostöö loodud Google. See on veebipõhine Python-keskkond andmeanalüüsi, masinõppe ja AI jaoks. See on lihtsalt pilvepõhine Jupyteri sülearvuti, mis on eelinstalleeritud peaaegu iga pythoni paketiga, mida teil andmeteadlasena vaja oleks..

Nüüd jätkake https://colab.research.google.com/notebooks/intro.ipynb. Te peaksite nägema allpool.

Klõpsake vasakus ülanurgas navigeerimise ajal faili suvandil ja siis suvandil “uus märkmik”. Näete brauserisse laaditud uut Jupyteri sülearvuti lehte. Esimene asi, mida peame tegema, on importida pandasid oma töökeskkonda. Saame seda teha järgmise koodi käivitamisega;

importida pandasid pd-na

Selle artikli jaoks kasutaksime oma andmeanalüüsiks eluasemehinna andmekogumit. Andmekogu, mida kasutaksime, leiate siin. Esimese asjana tahaksime selle andmestiku oma keskkonda laadida.

Saame seda teha uues lahtris järgmise koodiga;

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

.Read_csv kasutatakse siis, kui soovime lugeda CSV-faili ja kui me andsime üle atribuudi, et näidata, et CSV-fail on komadega eraldatud.

Peaksime ka tähele panema, et meie laaditud CSV-fail on salvestatud muutujasse df .

Me ei pea kasutama Jupyteri sülearvuti printimisfunktsiooni. Saame lihtsalt lahtrisse sisestada muutuja nime ja Jupyter Notebook prindib selle meile välja.

Saame seda proovida, tippides df uude lahtrisse ja käivitades selle, prindib see kõik meie andmestikus olevad andmed meie jaoks välja kui DataFrame.

Kuid me ei taha alati näha kõiki andmeid, mõnikord tahame näha vaid esimesi andmeid ja nende veerunimesid. Saame kasutada funktsiooni df.head () esimese viie veeru printimiseks ja df.tail () viimase viie printimiseks. Kummagi väljund näeks selline välja;

Tahaksime kontrollida seoseid nende mitme andmerea ja andmeveeru vahel. Funktsioon .describe () teeb täpselt seda meie jaoks.

 Df.describe () käitamine annab järgmise väljundi;

Kohe näeme, et .describe () annab DataFrame’i iga veeru keskmise, standardhälbe, minimaalse ja maksimaalse väärtuse ning protsentiilid. See on eriti kasulik.

Samuti saame kontrollida oma 2D DataFrame kuju, et teada saada, mitu rida ja veergu sellel on. Saame seda teha df.shape abil, mis tagastab vormingus rea (read, veerud).

Samuti saame df.columns abil kontrollida kõigi meie DataFrame veergude nimesid.

Mis siis, kui tahame valida ainult ühe veeru ja tagastada kõik selles olevad andmed? Seda tehakse sarnaselt sõnastiku viilimisega. Sisestage järgmine kood uude lahtrisse ja käivitage see

df [‘hind’]

Ülaltoodud kood tagastab hinnasamba, me saame minna kaugemale, salvestades selle uude muutujasse

hind = df [‘hind’]

Nüüd saame teha kõiki muid toiminguid, mida saab DataFrame’il meie hinnamuutujal teha, kuna see on vaid tegeliku DataFrame’i alamhulk. Saame teha selliseid asju nagu df.head (), df.shape jne..

Samuti võiksime valida mitu veergu, edastades veergude nimede nimekirja df-ks

data = df [[‘hind’, ‘magamistoad’]]

Ülaltoodud valib veerud nimedega „hind” ja „magamistoad”. Kui sisestame data.head () uude lahtrisse, oleks meil järgmine

Ülaltoodud veergude viilutamise viis tagastab selle veeru kõik reaelemendid, mis juhtuks, kui tahame oma andmekogumist tagastada ridade alamhulka ja veergude alamhulka? Seda saab teha .iloc abil ja see indekseeritakse sarnaselt python Lists-iga. Nii et saame midagi sellist teha

df.iloc [50:, 3]

Mis tagastab 3. veeru 50. reast lõpuni. See on päris kena ja täpselt sama, kui loendite viilutamine pythonis.

Teeme nüüd huvitavaid asju, meie eluasemehindade andmestikus on veerg, mis näitab meile maja hinda, ja teine ​​veerg näitab, mitu magamistuba selles majas on. Eluaseme hind on püsiv väärtus, nii et on võimalik, et meil pole kahte sama hinnaga maja. Kuid magamistubade arv on mõnevõrra diskreetne, nii et meil võib olla mitu maja, kus on kaks, kolm, neli magamistuba jne.

Mis siis, kui tahame saada kõik majad sama arvu magamistubadega ja leida iga eraldi magamistoa keskmine hind? Pandades on seda suhteliselt lihtne teha, seda saab teha ka sellisena;

df.groupby (‘magamistoad’) [‘hind’] .mean ()

Esimesed rühmitasid DataFrame andmekogude järgi identse magamistoa numbriga, kasutades funktsiooni df.groupby (), siis ütleme, et anna meile lihtsalt magamistoa veerg ja kasutage funktsiooni .mean (), et leida iga maja keskmine andmestikust.

Mis siis, kui tahame ülaltoodut visualiseerida? Tahaksime kontrollida, kuidas erineb iga magamistoa numbri keskmine hind? Peame lihtsalt eelmise ahela aheldama funktsiooniks .plot ();

df.grupp (‘magamistoad’) [‘hind’] .mean (). krunt ()

Meil on väljund, mis näeb välja selline;

Ülaltoodud näitab meile andmete suundumusi. Horisontaalteljel on selgelt eristatav arv magamistube (pange tähele, et rohkem kui ühes majas võib olla X magamistubade arvu); vertikaalteljel on meil horisontaaltel asuvate magamistubade arvu keskmised hinnad telg. Nüüd võime kohe märgata, et 5–10 magamistoaga majad maksavad palju rohkem kui 3 magamistoaga majad. Samuti saab selgeks, et umbes 7 või 8 magamistoaga majad maksavad palju rohkem kui 15, 20 või isegi 30 toaga majad.

Ülaltoodud teabe tõttu on andmeanalüüs väga oluline. Saame neist andmetest kasuliku ülevaate, mida ilma analüüsita pole kohe või üsna võimatu märgata.

Puuduvad andmed

Oletame, et ma võtan läbi küsitluse, mis koosneb mitmest küsimusest. Jagan tuhandete inimestega linki uuringule, et nad saaksid tagasisidet anda. Minu lõppeesmärk on nende andmete andmete analüüs, et saaksin nendest andmetest peamisi teadmisi.

Nüüd võib palju valesti minna, mõned inspektorid võivad mõnele minu küsimusele vastata ebamugavalt ja jätta see tühjaks. Paljud inimesed saaksid sama teha ka minu küsitlusküsimuste mitme osa puhul. Seda ei pruugita pidada probleemiks, kuid kujutage ette, kui ma koguksin oma uuringus numbrilisi andmeid ja osa analüüsist nõuaks minult summa, keskväärtuse või mõne muu aritmeetilise operatsiooni saamist. Mitmed puuduvad väärtused tooksid minu analüüsis kaasa palju ebatäpsusi, ma pean leidma viisi, kuidas leida need puuduvad väärtused ja asendada need mõne väärtusega, mis võiks neid lähedaselt asendada..

Pandad pakuvad meile funktsiooni DataFrame’is puuduvate väärtuste leidmiseks nimega isnull ().

Funktsiooni isnull () saab sellisena kasutada;

df.isnull ()

See tagastab loogiliste andmete DataFrame’i, mis annab meile teada, kas algselt olemas olnud andmed puudusid tegelikult või puuduvad valesti. Väljund näeks välja selline;


Vajame viisi, kuidas saaksime need kõik puuduvad väärtused asendada, enamasti võib puuduvate väärtuste valimisel arvestada nulliga. Aeg-ajalt võib seda võtta kõigi muude andmete keskmiseks või võib-olla ka selle ümber olevate andmete keskmiseks, sõltuvalt andmeteadlasest ja analüüsitavate andmete kasutamise juhtumist.

Kõigi DataFrame’is puuduvate väärtuste täitmiseks kasutame funktsiooni .fillna ();

df.fillna (0)

Ülaltoodud juhul täidame kõik tühjad andmed nulliga. Samuti võib see olla mis tahes muu number, mille me selle täpsustame.

Andmete tähtsust ei saa üle tähtsustada, see aitab meil saada vastuseid otse meie andmetest !. Andmete analüüs on nende sõnul digitaalse majanduse jaoks uus õli.

Kõik selle artikli näited leiate siin.

Põhjalikuma teabe saamiseks tutvuge Andmete analüüs Pythoni ja Pandase veebikursusel.

Sildid:

  • 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