Cum se creează un cadru de date Pandas [cu exemple]

Publicat: 2022-12-08

Aflați elementele de bază ale lucrului cu Pandas DataFrames: structura de bază a datelor în Pandas, o bibliotecă puternică de manipulare a datelor.

Dacă doriți să începeți cu analiza datelor în Python, panda este una dintre primele biblioteci cu care ar trebui să învățați să lucrați. De la importarea datelor din mai multe surse, cum ar fi fișierele CSV și bazele de date, până la gestionarea datelor lipsă și analizarea acestora pentru a obține informații – Pandas vă permite să faceți toate cele de mai sus.

Pentru a începe să analizați datele cu panda, ar trebui să înțelegeți structura fundamentală a datelor din panda: cadre de date .

În acest tutorial, veți învăța elementele de bază ale cadrelor de date panda și metodele obișnuite de a crea cadre de date. Veți învăța apoi cum să selectați rânduri și coloane din cadrul de date pentru a prelua subseturi de date.

Pentru toate acestea și multe altele, să începem.

Instalarea și importul Pandas

Întrucât Pandas este o bibliotecă de analiză a datelor terță parte, ar trebui mai întâi să o instalați. Este recomandat să instalați pachete externe într-un mediu virtual pentru proiectul dvs.

Dacă utilizați distribuția Anaconda din Python, puteți utiliza conda pentru gestionarea pachetelor.

 conda install pandas

De asemenea, puteți instala panda folosind pip:

 pip install pandas

Biblioteca Pandas necesită NumPy ca dependență. Deci, dacă NumPy nu este deja instalat, va fi instalat și în timpul procesului de instalare.

După instalarea panda, îl puteți importa în mediul dvs. de lucru. În general, panda este importată sub pseudonimul pd :

 import pandas as pd

Ce este un DataFrame în Pandas?

Ce-este-un-DataFrame-in-Pandas

Structura fundamentală a datelor în panda este cadrul de date . Un cadru de date este o matrice bidimensională de date cu index etichetat și coloane denumite . Fiecare coloană din cadrul de date numită serie panda , are un index comun.

Iată un exemplu de cadru de date pe care îl vom crea de la zero în următoarele câteva minute. Acest cadru de date conține date despre cât cheltuiesc șase studenți în patru săptămâni.

pd-dataframe-ex

Numele elevilor sunt etichetele rândurilor. Iar coloanele sunt denumite „Săptămâna1” până la „Săptămâna4”. Observați că toate coloanele au același set de etichete de rând, numit și index .

Cum se creează un Pandas DataFrame

Există mai multe moduri de a crea un cadru de date panda. În acest tutorial, vom discuta următoarele metode:

  • Crearea unui cadru de date din matrice NumPy
  • Crearea unui cadru de date dintr-un dicționar Python
  • Crearea unui cadru de date prin citirea fișierelor CSV

Din NumPy Arrays

Să creăm un cadru de date dintr-o matrice NumPy.

Să creăm matricea de date cu forma (6,4) presupunând că, într-o săptămână dată, fiecare student cheltuiește între 0 USD și 100 USD. Funcția randint() din modulul random al lui NumPy returnează o matrice de numere întregi aleatoare într-un interval dat, [low,high) .

 import numpy as np np.random.seed(42) data = np.random.randint(0,101,(6,4)) print(data)
 array([[51, 92, 14, 71], [60, 20, 82, 86], [74, 74, 87, 99], [23, 2, 21, 52], [ 1, 87, 29, 37], [ 1, 63, 59, 20]])

Pentru a crea un cadru de date Pandas, puteți utiliza constructorul DataFrame și puteți trece în matricea NumPy ca argument de data , după cum se arată:

 students_df = pd.DataFrame(data=data)

Acum putem apela funcția încorporată type() pentru a verifica tipul students_df . Vedem că este un obiect DataFrame .

 type(students_df) # pandas.core.frame.DataFrame
 print(students_df)
panda-dataframe-01

Vedem că în mod implicit, avem indexarea intervalului care merge de la 0 la numRows – 1, iar etichetele coloanei sunt 0, 1, 2, …, numCols -1. Cu toate acestea, acest lucru reduce lizibilitatea. Va ajuta să adăugați nume descriptive de coloane și etichete de rând în cadrul de date.

Să creăm două liste: una pentru a stoca numele elevilor și alta pentru a stoca etichetele coloanelor.

 students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny'] cols = ['Week1','Week2','Week3','Week4']

Când apelați constructorul DataFrame , puteți seta index și columns la listele de etichete de rând și, respectiv, etichete de coloană de utilizat.

 students_df = pd.DataFrame(data = data,index = students,columns = cols)

Acum avem cadrul de date students_df cu etichete descriptive pentru rânduri și coloane.

 print(students_df)
panda-dataframe-02

Pentru a obține câteva informații de bază despre cadrul de date, cum ar fi valorile lipsă și tipurile de date, puteți apela metoda info() pe obiectul cadru de date.

 students_df.info()
imaginea-114

Dintr-un dicționar Python

De asemenea, puteți crea un cadru de date panda dintr-un dicționar Python.

Aici, data_dict este dicționarul care conține datele studenților:

  • Numele elevilor sunt cheile.
  • Fiecare valoare este o listă cu cât cheltuiește fiecare student din săptămânile unu până la patru.
 data_dict = {} students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny'] for student,student_data in zip(students,data): data_dict[student] = student_data

Pentru a crea un cadru de date dintr-un dicționar Python, utilizați from_dict , așa cum se arată mai jos. Primul argument corespunde dicționarului care conține datele ( data_dict ). În mod implicit, cheile sunt folosite ca nume de coloane ale cadrului de date. Deoarece am dori să setăm cheile ca etichete de rând , setați orient= 'index' .

 students_df = pd.DataFrame.from_dict(data_dict,orient='index') print(students_df)
panda-dataframe-din-dict

Pentru a schimba numele coloanelor în numărul săptămânii, cols coloanele în lista de coloane:

 students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols) print(students_df)
panda-dataframe-03

Citiți un fișier CSV într-un cadru de date Pandas

Să presupunem că datele elevului sunt disponibile într-un fișier CSV. Puteți utiliza funcția read_csv() pentru a citi datele din fișier într-un cadru de date Pandas. pd.read_csv('file-path') este sintaxa generală, unde file-path este calea către fișierul CSV. Putem seta parametrul names la lista de nume de coloane de utilizat.

 students_df = pd.read_csv('/content/students.csv',names=cols)

Acum că știm cum să creăm un cadru de date, să învățăm cum să selectăm rândurile și coloanele.

Selectați Coloane dintr-un cadru de date Pandas

Există mai multe metode încorporate pe care le puteți utiliza pentru a selecta rânduri și coloane dintr-un cadru de date. Acest tutorial va analiza cele mai comune moduri de a selecta coloane, rânduri și atât rânduri, cât și coloane dintr-un cadru de date.

Selectarea unei singure coloane

Pentru a selecta o singură coloană, puteți folosi df_name[col_name] unde col_name este șirul care indică numele coloanei.

Aici, selectăm doar coloana „Săptămâna1”.

 week1_df = students_df['Week1'] print(week1_df)
cu o singură coloană

Selectarea coloanelor multiple

Pentru a selecta mai multe coloane din cadrul de date, treceți în lista tuturor numelor de coloane de selectat.

 odd_weeks = students_df[['Week1','Week3']] print(odd_weeks)
coloane multiple

Pe lângă această metodă, puteți utiliza și iloc() și loc() pentru a selecta coloanele. Vom codifica un exemplu mai târziu.

Selectați Rânduri dintr-un cadru de date Pandas

4-2

Folosind metoda .iloc().

Pentru a selecta rânduri folosind metoda iloc() , introduceți indicii corespunzători tuturor rândurilor sub formă de listă.

În acest exemplu, selectăm rândurile la index impar.

 odd_index_rows = students_df.iloc[[1,3,5]] print(odd_index_rows)
rânduri impare

Apoi, selectăm un subset al cadrului de date care conține rândurile de la indexul 0 la 2, punctul final 3 este exclus implicit.

 slice1 = students_df.iloc[0:3] print(slice1)
selecta-rânduri

Folosind metoda .loc().

Pentru a selecta rândurile unui cadru de date folosind metoda loc() , trebuie să specificați etichetele corespunzătoare rândurilor pe care doriți să le selectați.

 some_rows = students_df.loc[['Bob','Dave','Fanny']] print(some_rows)
unele-rânduri

Dacă rândurile cadrului de date sunt indexate folosind intervalul implicit 0, 1, 2, până la numRows -1, atunci folosind iloc() și loc() sunt ambele echivalente.

Selectați Rânduri și coloane dintr-un cadru de date Pandas

Până acum, ați învățat cum să selectați fie rânduri, fie coloane dintr-un cadru de date panda. Cu toate acestea, uneori poate fi necesar să selectați un subset de rânduri și coloane. Deci cum o faci? Puteți folosi iloc() și loc() pe care le-am discutat.

De exemplu, în fragmentul de cod de mai jos, selectăm toate rândurile și coloanele de la indexul 2 și 3.

 subset_df1 = students_df.iloc[:,[2,3]] print(subset_df1)
subset-cadru de date

Folosind start:stop creează o porțiune de la start până la stop , dar fără a include. Deci, când ignorați atât valorile de start , cât și de stop , când ignorați valorile de început și de oprire, porțiunea începe de la început - și se extinde până la sfârșitul cadrului de date - selectând toate rândurile.

Când utilizați metoda loc() , trebuie să treceți etichetele rândurilor și coloanelor pe care doriți să le selectați, după cum se arată:

 subset_df2 = students_df.loc[['Amy','Evelyn'],['Week1','Week3']] print(subset_df2)
df-subset

Aici, dataframe subset_df2 conține înregistrarea lui Amy și Evelyn pentru Săptămâna1 și Săptămâna3.

Concluzie

Iată o scurtă trecere în revistă a ceea ce ați învățat în acest tutorial:

  • După instalarea panda, îl puteți importa sub aliasul pd . Pentru a crea un obiect cadru de date panda, puteți utiliza constructorul pd.DataFrame(data) , unde data se referă la o matrice N-dimensională sau la un iterabil care conține datele. Puteți specifica rândul și indexul și etichetele coloanei setând parametrii opționali pentru index și, respectiv, coloane.
  • Folosind pd.read_csv(path-to-the-file) citește conținutul fișierului într-un cadru de date.
  • Puteți apela metoda info() pe obiectul cadru de date pentru a obține informații despre coloane, numărul de valori lipsă, tipurile de date și dimensiunea cadrului de date.
  • Pentru a selecta o singură coloană, utilizați df_name[col_name] și pentru a selecta mai multe coloane, o anumită coloană, df_name[[col1,col2,...,coln]] .
  • De asemenea, puteți selecta coloane și rânduri folosind metodele loc() și iloc() .
  • În timp ce metoda iloc() preia indexul (sau porțiunea de index) al rândurilor și coloanelor de selectat, metoda loc() preia etichetele rândurilor și coloanelor.

Puteți găsi exemplele folosite în acest tutorial în acest caiet Colab.

Apoi, consultați această listă de caiete de știință a datelor colaborative.