Barátságos bevezetés az adatok elemzéséhez a Pythonban

Az évek során hihetetlenül nőtt a python használata az adattudományban, és folyamatosan növekszik.


Az adattudomány egy hatalmas tanulmányi terület, sok alterülettel, amelyek közül az adatok elemzése kétségtelenül az egyik legfontosabb ezen területek között, és függetlenül az adattudományi készségektől, egyre fontosabbá válik a megértés vagy legalább alapvető ismeretekkel kell rendelkezniük.

Mi az adatelemzés??

Az adatelemzés nagy mennyiségű strukturálatlan vagy nem szervezett adat megtisztítása és átalakítása azzal a céllal, hogy kulcsfontosságú betekintést és információt gyűjtsön ezekről az adatokról, amelyek elősegítik a megalapozott döntések meghozatalát..

Az adatok elemzéséhez különféle eszközöket használnak, például Python, Microsoft Excel, Tableau, SaS stb., De ebben a cikkben arra összpontosítunk, hogy az adatok elemzése hogyan történik a pythonban. Pontosabban, hogyan történik ez egy úgynevezett python könyvtárral pandák.

Mi az a Panda??

A Pandas egy nyílt forráskódú Python könyvtár, amelyet az adatok kezelésére és megrongálására használnak. Gyors és nagyon hatékony, és eszközei többféle adat memóriába töltésére. Használható szeletek átalakítására, címkézésére, indexelésére vagy akár többféle adat csoportosítására.

Adatstruktúrák a pandákban

A Pandasban három adatstruktúra létezik:

  • Sorozat
  • DataFrame
  • panel

A három módszer megkülönböztetésének legjobb módja az, ha az egyik több kötegből áll. Tehát a DataFrame sorozathalom, a Panel pedig a DataFrames halom.

A sorozat egydimenziós tömb

Egy több sorozatból álló halom 2-dimenziós DataFrame-t eredményez

Számos DataFrame-halom háromdimenziós panelt hoz létre

Az adatszerkezet, amellyel együtt dolgoznánk, a 2-dimenziós DataFrame, amely szintén alapértelmezett megjelenítési eszköz lehet egyes adatkészletekhez, amelyekkel esetleg találkozunk..

Adatok elemzése Pandaban

A cikkhez nincs szükség telepítésre. Egy úgynevezett szerszámot használunk colaboratory készítette a Google. Ez egy online python környezet az adatanalízishez, gépi tanuláshoz és AI-hez. Ez egyszerűen egy felhőalapú Jupyter notebook, amely szinte minden python csomaghoz előre telepítve van, amelyre adattudósként lenne szüksége..

Most menj tovább https://colab.research.google.com/notebooks/intro.ipynb. Látnia kell az alábbiakat.

A bal felső sarokban navigálással kattintson a fájl opcióra, majd az „új notebook” opcióra. Látni fogja egy új Jupyter notebook oldalt betöltve a böngészőbe. Az első dolog, amit tennünk kell, hogy a pandákat behozzuk munkakörnyezetünkbe. Megtehetjük ezt a következő kód futtatásával;

importálj pandákat pd-ként

E cikk elemzéséhez a lakásárak-adatkészletet fogjuk használni. A felhasznált adatkészlet megtalálható itt. Az első dolog, amit szeretnénk tenni, az, hogy ezt az adatkészletet betöltjük a környezetünkbe.

Ezt megtehetjük a következő kóddal egy új cellában;

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 =’, ‘)

A .read_csv fájl akkor kerül felhasználásra, amikor CSV fájlt akarunk olvasni, és átadtunk egy sep tulajdonságot, hogy megmutatjuk, hogy a CSV fájl vesszővel elválasztva.

Azt is meg kell jegyeznünk, hogy a betöltött CSV-fájlt a df változó tárolja .

Nem kell használni a Jupyter Notebook nyomtatási () funkcióját. Csak beírhatunk egy változó nevet a cellába, és a Jupyter Notebook kinyomtatja nekünk.

Kipróbálhatjuk ezt a df gépelésével egy új cellában és futtatással, és kinyomtatja az adatkészletben szereplő összes adatot DataFrame-ként.

De nem mindig akarjuk látni az összes adatot, néha csak az első néhány adatot és azok oszlopneveit szeretnénk látni. A df.head () függvényt használhatjuk az első öt oszlop kinyomtatására, a df.tail () funkcióval pedig az utolsó öt oszlop kinyomtatására. A kettő bármelyikének kimenete így néz ki;

Szeretnénk ellenőrizni a kapcsolat e több adatsor és adat oszlop között. A .describe () függvény pontosan ezt teszi nekünk.

 A df.describe () futtatása a következő kimenetet adja;

Azonnal láthatjuk, hogy a .describe () megadja a DataFrame minden egyes oszlopának átlagát, szórását, minimális és maximális értékét és százalékát. Ez különösen nagyon hasznos.

Ellenőrizhetjük a 2D DataFrame formáját is, hogy megtudja, hány sor és oszlop van. Ezt megtehetjük a df.shape használatával, amely egy formátumú oszlopot ad vissza (sorok, oszlopok).

A DataFrame összes oszlopának nevét a df.columns segítségével ellenőrizhetjük.

Mi lenne, ha csak egy oszlopot szeretnénk kiválasztani, és az összes adatot visszaadni? Ez történik, hasonlóan a szótárban történő szeleteléshez. Írja be a következő kódot egy új cellába, és futtassa

df [‘ár’]

A fenti kód visszaadja az ár oszlopot, tovább léphetünk, ha önmagában új változóba mentjük

ár = df [‘ár’]

Most minden más műveletet elvégezhetünk, amely egy DataFrame-en elvégezhető az árváltozónkon, mivel az csak egy tényleges DataFrame részhalmaza. Tudunk olyan dolgokat csinálni, mint a df.head (), df.shape stb..

Több oszlopot választhatunk úgy is, hogy oszlopnevek listáját adjuk át a df-nek

data = df [[‘ár’, ‘hálószoba’]]

A fentiek az „ár” és a „hálószoba” nevekkel választanak oszlopokat, ha egy új cellába írjuk be a data.head () nevet, akkor a következők lennének:

Az oszlopok szeletelésének fenti módja az oszlop összes sor elemét adja vissza, mi van, ha vissza akarunk adni egy sor sorozatot és oszlopok egy részhalmazát az adatkészletünkből? Ezt megteheti .iloc használatával, és a python listákhoz hasonló módon indexelheti. Tehát tehetünk valamit

df.iloc [50:, 3]

Amely az 50. sorból a 3. oszlopot a végéig adja vissza. Nagyon ügyes és ugyanolyan, mint a szeletelés a pythonban.

Csináljunk néhány igazán érdekes dolgot, a lakásárak-adatkészletünkben van egy oszlop, amely megmutatja nekünk a ház árát, és egy másik oszlopban megmutatja, hány hálószobával rendelkezik az adott ház. A ház ára állandó érték, tehát lehetséges, hogy nincs két házunk, amelyek ugyanazt az árat viselik. De a hálószobák száma kissé különálló, tehát több házunk lehet két, három, négy hálószobával, stb.

Mi lenne, ha azt akarjuk, hogy az összes ház azonos számú hálószobával rendelkezzen, és megtaláljuk az egyes különálló hálószobák átlagát? Viszonylag könnyű ezt megtenni a pandákban, mint ilyen;

df.groupby (‘hálószoba’) [‘ár’] .mean ()

A fenti első csoportba sorolja a DataFrame-t az azonos hálószobaszámmal rendelkező adatkészletek alapján, a df.groupby () függvénnyel, majd azt mondja, hogy adja meg nekünk csak a hálószobás oszlopot, és használja a .mean () függvényt az egyes házak átlagának megtalálásához az adatkészletben..

Mi lenne, ha el akarjuk látni a fentieket? Szeretnénk ellenőrizni, hogy az egyes hálószobák átlagos ára hogyan változik? Az előző kódot egy .plot () függvényre kell láncolnunk;

df.csoportos (‘hálószoba’) [‘ár’] .mean (). telek ()

Van olyan kimenetünk, amely ilyennek néz ki;

A fentiek az adatok bizonyos tendenciáit mutatják be. A vízszintes tengelyen megkülönböztetett számú hálószoba van (vegye figyelembe, hogy egynél több házban is lehet X hálószobák száma). A függőleges tengelyen az árak átlaga vonatkozik a vízszinteshez tartozó hálószobák megfelelő számára. tengely. Most azonnal észrevehetjük, hogy az 5-10 hálószobás házak sokkal többet fizetnek, mint a 3 hálószobás házak. Az is nyilvánvalóvá válik, hogy a körülbelül 7 vagy 8 hálószobás házak sokkal többet fizetnek, mint a 15, 20 vagy akár 30 szobával rendelkező házak..

A fentiekhez hasonló információk miatt az adatelemzés nagyon fontos, hasznos betekintést nyerhetünk azokból az adatokból, amelyeket elemzés nélkül nem azonnal, vagy éppen lehetetlen észrevenni..

Hiányzó adatok

Tegyük fel, hogy egy kérdőívből álló felmérést készítek. Több ezer emberrel osztom meg a felmérés linkjét, hogy visszajelzéseket adhassanak. Végső célom az adatok elemzése ezen adatokra, hogy néhány főbb betekintést kapjak az adatokból.

Most sok minden rosszul fordulhat, egyes felmérők kényelmetlenül érzik magukat, amikor válaszolnak néhány kérdésemre, és üresen hagyják. Nagyon sok ember teheti meg ugyanezt a felmérési kérdéseim több részén. Ez valószínűleg nem tekinthető problémanak, de képzelje el, ha numerikus adatokat gyűjtök a felmérésem során, és az elemzés egy részéhez meg kellett volna kérnem az összeget, az átlagot vagy valamely más számtani műveletet. Több hiányzó érték sok pontatlansághoz vezetne az elemzésem során, ki kell találnom a módját, hogy megtaláljam és helyettesítsem ezt a hiányzó értéket olyan értékekkel, amelyek szorosan helyettesíthetik őket.

A pandák olyan funkcióval látják el, amelyben hiányzó értékeket találnak az isnull () nevű DataFrame-ben.

Az isnull () függvény mint ilyen használható;

df.isnull ()

Ez visszaadja a logikai adatok DataFrame-jét, amely megmutatja nekünk, hogy az eredetileg jelen lévő adatok valóban hiányoztak-e vagy tévesen hiányoztak-e. A kimenet mint ilyen;


Szükségünk van arra, hogy ezeket a hiányzó értékeket kicseréljük; a hiányzó értékek leggyakrabban nulla lehet. Időnként az összes többi adat átlagának, vagy talán a körülötte lévő adatok átlagának tekinthető, az adattudománytól és az elemzett adatok felhasználási esetétől függően.

Az összes hiányzó érték kitöltéséhez egy DataFrame-ben a .fillna () függvényt használjuk;

df.fillna (0)

A fentiekben az összes üres adatot nulla értékkel töltjük ki. Lehet, hogy bármilyen más szám is, amelyet megadunk.

Az adatok fontosságát nem szabad túl hangsúlyozni, ez segít abban, hogy a válaszokat közvetlenül az adatainkból nyújtsuk be !. Az adatok elemzése szerint az új olaj a digitális gazdaságok számára.

A cikkben szereplő összes példa megtalálható itt.

Ha többet szeretne megtudni, nézd meg Adatelemzés Python és Panda online tanfolyamon.

CÍMKÉK:

  • 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