Indexarea Python pandas DataFrames permite accesul eficient și direct la date. Facilitează selectarea rândurilor și coloanelor specifice, simplificând sarcinile de analiză a datelor.

Ce este indexarea în pandas?

Indexarea în pandas se referă la diferite metode pe care le puteți utiliza pentru a selecta rânduri sau coloane. Folosind etichete ale rândurilor și coloanelor sau poziția lor numerică în cadrul DataFrame, puteți selecta cu ușurință elemente dintr-un DataFrame. Un index servește ca un fel de sistem de adresare pentru datele dvs., ajutându-vă să localizați și să gestionați datele mai eficient.

Ce este pandas DataFrame.index?

Puteți vizualiza etichetele indexului unui DataFrame în pandas folosind atributul index. Sintaxa arată astfel:

DataFrame.index
python

Care este sintaxa pentru indexarea DataFrames în pandas?

Există mai multe moduri de a indexa DataFrames pandas, iar sintaxa variază în funcție de operațiunea pe care doriți să o efectuați.

Indexarea cu etichete (etichete de coloană)

Puteți utiliza numele coloanelor pentru a indexa cadrele de date pandas. Iată un exemplu de creare a unui cadru de date eșantion:

import pandas as pd
# Creating a sample DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['Nottingham', 'London', 'Cardiff']
}
df = pd.DataFrame(data)
print(df)
python

Iată cum arată DataFrame:

Name  Age       City
0    Alice   25     Nottingham
1    Bob   30  	London
2  Charlie   35    Cardiff

Pentru a accesa toate valorile dintr-o coloană, puteți utiliza numele coloanei împreună cu operatorul de indexare []. Introduceți numele coloanei ca șir Python în interiorul operatorului de indexare:

# Access the Age column
print(df['Age'])
python

Rezultatul este o listă de vârste:

0    25
1    30
2    35
Name: Age, dtype: int64

Pentru a recupera datele din mai multe coloane, scrieți numele coloanelor în operatorul de indexare și separați-le cu virgule.

Indexare cu loc[] (etichete de rând)

Dacă trebuie să accesați un rând specific din DataFrame, puteți utiliza indexatorul pandas loc. Puteți transmite indexatorului eticheta rândului sau numărul rândului. În acest exemplu, vom utiliza același DataFrame ca mai sus și vom extrage valorile din primul rând (rândul 0):

print(df.loc[0])
python

Codul de mai sus afișează valorile pentru Alice, care sunt conținute în primul rând al DataFrame:

Name        Alice
Age            25
City      Nottingham
Name: 0, dtype: object

Indexare cu iloc[] (numere de rânduri și coloane)

O altă modalitate de a accesa elemente specifice din DataFrame este prin intermediul numerelor de rânduri și coloane. Aceasta este probabil cea mai populară modalitate de a localiza elemente într-un DataFrame. Pentru a utiliza indexul numeric, aveți nevoie de atributul DataFrame iloc.

# Access the first row
print(df.iloc[0])
# Access the value in the first row and second column
print(df.iloc[0, 1])
python

Iată rezultatul atunci când se lucrează cu iloc[]:

Name        Alice
Age            25
City      Nottingham
Name: 0, dtype: object
25

Accesarea valorilor individuale

Dacă doriți doar să accesați o singură valoare, indexatorul at este o modalitate rapidă și simplă de a face acest lucru. Cu acest indexator, puteți defini rânduri și coloane folosind etichetele lor. De exemplu, dacă doriți să aflați unde locuiește Bob, tastați „1” pentru rând și „Oraș” pentru coloană:

print(df.at[1, 'City'])
python

Aici, obținem rezultatul Londra.

Alternativ, puteți utiliza indexatorul iat, care funcționează similar cu at, dar utilizează poziția coloanei bazată pe numere întregi în loc de nume. Codul de mai jos produce același rezultat ca și exemplul anterior:

print(df.iat[1, 2])
python

Indexare booleană

De asemenea, puteți crea subseturi ale unui DataFrame pe baza unei condiții. Aceasta se numește indexare booleană. Condiția trebuie să aibă valoarea True sau False și se plasează direct în operatorul de indexare. De exemplu, dacă doriți să selectați rândurile care conțin persoane cu vârsta peste 30 de ani, puteți utiliza următorul cod:

# Select rows where Age is greater than 30
print(df[df['Age'] > 30])
python

Singura persoană care are peste 30 de ani este Charlie, ceea ce duce la următorul rezultat:

Name  Age     City
2  Charlie   35    Cardiff
Mergi la meniul principal