O introducere prietenoasă pentru analiza datelor în Python

De-a lungul anilor, utilizarea pitonului pentru știința datelor a crescut incredibil și continuă să crească zilnic.


Știința datelor este un domeniu vast de studiu cu o mulțime de sub-câmpuri, dintre care analiza datelor este fără îndoială una dintre cele mai importante din toate aceste domenii și, indiferent de nivelul de abilitate în știința datelor, a devenit din ce în ce mai important să înțelegem sau au cel puțin o cunoaștere de bază despre aceasta.

Ce este Analiza datelor?

Analiza datelor este curățarea și transformarea unei cantități mari de date nestructurate sau neorganizate, cu scopul de a genera informații cheie și informații despre aceste date, care ar ajuta la luarea deciziilor în cunoștință de cauză.

Există diferite instrumente utilizate pentru analiza datelor, Python, Microsoft Excel, Tableau, SaS, etc, dar în acest articol, ne-am concentra asupra modului în care se face analiza datelor în python. Mai precis, cum se face cu o bibliotecă piton numită Pandas.

Ce este Pandas?

Pandas este o bibliotecă Python open-source folosită pentru manipularea și războiul datelor. Este rapid și extrem de eficient și are instrumente pentru încărcarea mai multor tipuri de date în memorie. Poate fi folosit pentru a remodela, eticheta felie, index sau chiar a grupa mai multe forme de date.

Structuri de date în Pandas

Există 3 structuri de date în Pandas și anume;

  • Serie
  • DataFrame
  • Panou

Cel mai bun mod de a-i diferenția pe cei trei este de a vedea unul care conține mai multe stive de cealaltă. Deci, un DataFrame este o stivă de serii, iar un Panou este un stivă de DataFrames.

O serie este un tablou unidimensional

O stivă din mai multe serii face un DataFrame bidimensional

O grămadă de mai multe DataFrames face un panou tridimensional

Structura de date cu care am lucra cel mai mult este cea de 2 dimensiuni DataFrame, care poate fi, de asemenea, mijlocul de reprezentare implicit pentru unele seturi de date pe care le putem întâlni.

Analiza datelor în Pandas

Pentru acest articol, nu este necesară nicio instalare. Am folosi un instrument numit colaboratory creat de Google. Este un mediu piton online pentru analiza datelor, învățarea mașinii și AI. Este pur și simplu un Jupyter Notebook care se instalează preinstalat cu aproape fiecare pachet python de care ai avea nevoie ca om de știință de date.

Acum, mergeți la https://colab.research.google.com/notebooks/intro.ipynb. Ar trebui să vedeți mai jos.

Prin navigarea din stânga sus, faceți clic pe opțiunea fișier și faceți clic pe opțiunea „nou notebook”. Veți vedea o nouă pagină de notebook Jupyter încărcată în browser. Primul lucru pe care trebuie să-l facem este să importăm panda în mediul nostru de lucru. Putem face asta rulând următorul cod;

import panda ca pd

Pentru acest articol, am folosi un set de date privind prețul locuinței pentru analiza datelor noastre. Setul de date pe care l-am folosi poate fi găsit aici. Primul lucru pe care am dori să îl facem este să încărcăm acest set de date în mediul nostru.

Putem face asta cu următorul cod într-o celulă nouă;

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

.Read_csv este utilizat atunci când dorim să citim un fișier CSV și am trecut o proprietate sep pentru a arăta că fișierul CSV este delimitat prin virgulă.

De asemenea, ar trebui să reținem că fișierul nostru CSV încărcat este stocat într-o variabilă df .

Nu trebuie să folosim funcția print () în Jupyter Notebook. Putem pur și simplu să tastați un nume variabil în celula noastră și Jupyter Notebook o va tipări pentru noi.

Putem încerca asta tastând df într-o celulă nouă și rulând-o, aceasta va tipări toate datele din setul nostru de date ca un DataFrame pentru noi.

Dar nu dorim întotdeauna să vedem toate datele, uneori vrem doar să vedem primele date și numele coloanelor. Putem folosi funcția df.head () pentru a imprima primele cinci coloane și df.tail () pentru a tipări ultimele cinci. Rezultatele unuia dintre cei doi ar arăta ca atare;

Am dori să verificăm relațiile dintre aceste câteva rânduri și coloane de date. Funcția .describe () face exact acest lucru pentru noi.

 Rularea df.describe () oferă următoarea ieșire;

Putem observa imediat că .describe () oferă media, abaterea standard, valorile minime și maxime și procentele din fiecare coloană din DataFrame. Acest lucru este foarte util în special.

Putem verifica, de asemenea, forma fișierului nostru de date 2D pentru a afla câte rânduri și coloane are. Putem face acest lucru folosind df.shape care returnează un tuple în format (rânduri, coloane).

De asemenea, putem verifica numele tuturor coloanelor din DataFrame noastre folosind df.columns.

Ce se întâmplă dacă dorim să selectăm o singură coloană și să returnăm toate datele din ea? Acest lucru este făcut este un mod similar cu felierea printr-un dicționar. Introduceți codul următor într-o celulă nouă și executați-l

df [„preț”]

Codul de mai sus returnează coloana de preț, putem merge mai departe salvând-o într-o nouă variabilă ca atare

preț = df [‘preț’]

Acum putem efectua orice alte acțiuni care pot fi efectuate pe un DataFrame pe variabila noastră de preț, deoarece este doar un subset al unui DataFrame real. Putem face chestii precum df.head (), df.shape etc..

De asemenea, am putea selecta mai multe coloane trecând o listă de nume de coloane în df ca atare

date = df [[‘preț’, ‘dormitoare’]]

Cele de mai sus selectează coloane cu nume „preț” și „dormitoare”, dacă introducem date.head () într-o celulă nouă, am avea următoarele

Modul de mai sus de a împărți coloanele returnează toate elementele de rând din acea coloană, ce se întâmplă dacă vrem să returnăm un subset de rânduri și un subset de coloane din setul nostru de date? Acest lucru se poate face folosind .iloc și este indexat într-un mod similar cu listele pitonice. Deci putem face ceva de genul

df.iloc [50:, 3]

Care returnează coloana a 3-a din rândul 50 până la sfârșit. Este destul de îngrijit și la fel ca listele de tranșare în piton.

Acum să facem câteva lucruri cu adevărat interesante, setul nostru de date privind prețul locuinței are o coloană care ne spune prețul unei case și o altă coloană ne spune numărul de dormitoare pe care le are o anumită casă. Prețul locuinței este o valoare continuă, așa că este posibil să nu avem două case care să aibă același preț. Numărul de dormitoare este însă oarecum discret, deci putem avea mai multe case cu două, trei, patru dormitoare etc..

Ce se întâmplă dacă dorim să obținem toate casele cu același număr de dormitoare și să găsim prețul mediu al fiecărui dormitor discret? Este relativ ușor să faci asta în panda, se poate face ca atare;

df.groupby (‘dormitoare’) [‘preț’] .mean ()

Primele grupuri de date de mai sus grupează date cu un set de date cu număr identic de dormitor folosind funcția df.groupby (), apoi îi spunem să ne ofere doar coloana dormitorului și să folosim funcția .mean () pentru a găsi media fiecărei case din setul de date.

Ce se întâmplă dacă vrem să vizualizăm cele de mai sus? Am dori să putem verifica cum variază prețul mediu al fiecărui număr distinct de dormitor? Trebuie doar să lanțăm codul anterior la o funcție .plot () ca atare;

df.groupby (‘dormitoare’) [‘preț’] .mean (). complot ()

Vom avea o ieșire care arată ca atare;

Cele de mai sus ne arată câteva tendințe în date. Pe axa orizontală, avem un număr distinct de dormitoare (Rețineți că mai multe case pot avea numărul X de dormitoare), Pe axa verticală, avem media prețurilor în ceea ce privește numărul corespunzător de dormitoare pe orizontală axă. Acum putem observa imediat că casele care au între 5 și 10 dormitoare costă mult mai mult decât casele cu 3 dormitoare. De asemenea, va deveni evident că casele care au aproximativ 7 sau 8 dormitoare costă mult mai mult decât cele cu 15, 20 sau chiar 30 de camere.

Informații precum cele de mai sus sunt motivele pentru care analiza datelor este foarte importantă, putem extrage informații utile din datele care nu sunt imediat sau destul de imposibil de observat fără analiză.

Date lipsa

Să presupunem că iau un sondaj care constă dintr-o serie de întrebări. Împărtășesc un link către sondaj cu mii de oameni, astfel încât să își poată da feedback. Scopul meu final este să conduc analiza datelor cu privire la aceste date, astfel încât să pot obține câteva informații cheie din date.

Acum, mulți ar putea merge greșit, unii inspectori s-ar putea simți incomod răspunzând la unele dintre întrebările mele și lăsându-l liber. Mulți oameni ar putea face același lucru pentru mai multe părți ale întrebărilor din sondajul meu. Aceasta poate să nu fie considerată o problemă, dar imaginați-vă dacă ar fi să culeg date numerice în sondajul meu și o parte a analizei mi-a cerut să obțin fie suma, media sau o altă operație aritmetică. Câteva valori lipsă ar duce la o mulțime de inexactități în analiza mea, trebuie să descopăr o modalitate de a găsi și înlocui aceste valori lipsă cu unele valori care ar putea să le înlocuiască.

Pandasul ne oferă o funcție de a găsi valori lipsă într-un DataFrame numit isnull ().

Funcția isnull () poate fi folosită ca atare;

df.isnull ()

Aceasta returnează un DataFrame de booleane care ne spune dacă datele prezente inițial acolo lipseau în realitate sau lipseau în mod fals. Producția ar arăta ca atare;


Avem nevoie de o modalitate de a putea înlocui toate aceste valori lipsă, de cele mai multe ori alegerea valorilor lipsă poate fi luată ca zero. Uneori, aceasta ar putea fi considerată media tuturor celorlalte date sau, poate, a datelor din jurul acesteia, în funcție de omul de știință și de caz de utilizare a datelor analizate.

Pentru a umple toate valorile lipsă într-un DataFrame, folosim funcția .fillna () folosită ca atare;

df.fillna (0)

În cele de mai sus, completăm toate datele goale cu valoarea zero. La fel de bine ar putea fi orice alt număr pe care îl specificăm.

Importanța datelor nu poate fi supraestimată, ne ajută să obținem răspunsuri chiar din datele noastre în sine !. Analiza datelor spun că este noul ulei pentru economiile digitale.

Toate exemplele din acest articol pot fi găsite aici.

Pentru a afla mai multe în profunzime, consultați Analiza datelor cu cursul online Python și Pandas.

ETICHETE:

  • 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