Cum să filtrați rândurile într-un cadru de date Pandas pe baza valorilor coloanelor

Temp mail SuperHeros
Cum să filtrați rândurile într-un cadru de date Pandas pe baza valorilor coloanelor
Cum să filtrați rândurile într-un cadru de date Pandas pe baza valorilor coloanelor

Filtrarea rândurilor în Pandas DataFrames

Pandas este o bibliotecă puternică în Python pentru manipularea și analiza datelor. O sarcină obișnuită este selectarea rândurilor dintr-un cadru de date pe baza valorilor coloanei, similar cu tabelul SQL SELECT * FROM WHERE nume_coloană = some_value.

Acest ghid vă va ghida prin diferite metode pentru a realiza acest lucru în Pandas, ușurând filtrarea eficientă a datelor. Indiferent dacă sunteți un începător sau un utilizator experimentat, aceste sfaturi vă vor îmbunătăți abilitățile de manipulare a datelor.

Comanda Descriere
pd.DataFrame(data) Creează un DataFrame dintr-un dicționar de date.
df[column_name] Accesează o coloană din DataFrame după nume.
df[condition] Filtrează DataFrame pe baza unei condiții aplicate unei coloane.
print(selected_rows) Imprimă DataFrame sau un subset al acestuia pe consolă.
df[df['Age'] >df[df['Age'] > 25] Selectează rândurile în care valorile coloanei „Vârstă” sunt mai mari de 25.
df[df['City'] == 'Chicago'] Selectează rândurile în care valorile coloanei „Oraș” sunt egale cu „Chicago”.

Înțelegerea selecției rândurilor DataFrame în Pandas

Scripturile furnizate demonstrează cum să selectați rânduri dintr-un DataFrame pe baza valorilor coloanei folosind biblioteca Pandas în Python. Primul script începe prin importul bibliotecii Pandas cu import pandas as pd comanda. Apoi creează un eșantion DataFrame folosind un dicționar de date, care este convertit într-un DataFrame cu pd.DataFrame(data) comanda. Scriptul ilustrează apoi două metode de selectare a rândurilor: selectarea rândurilor în care valoarea coloanei „Vârsta” este mai mare de 25 folosind df[df['Age'] > 25], și selectând rândurile în care valoarea coloanei „Oraș” este „Chicago”. df[df['City'] == 'Chicago']. Aceste DataFrames filtrate sunt tipărite folosind print() funcția de afișare a rândurilor selectate.

Al doilea script urmează o structură similară, dar utilizează date și criterii de selecție diferite. Acesta creează un DataFrame cu informații despre produs, inclusiv coloanele „Produs”, „Preț” și „Stoc”. Sunt selectate rânduri unde „Prețul” este mai mic sau egal cu 200 cu df[df['Price'] <= 200], iar în cazul în care „Stocul” este mai mult de 40 folosind df[df['Stock'] > 40]. Scopul acestor scripturi este de a arăta cum să filtrați rândurile DataFrame pe baza unor condiții specifice, similar modului în care ați folosi o interogare SQL pentru a selecta rânduri dintr-un tabel pe baza unei valori de coloană. Înțelegând și aplicând aceste comenzi, puteți manipula și analiza eficient datele din DataFrames.

Selectarea rândurilor dintr-un cadru de date utilizând valorile coloanelor în Pandas

Python cu Biblioteca Pandas

# Importing the necessary library
import pandas as pd

# Creating a sample DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)

# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)

# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)

Filtrarea datelor într-un cadru de date pe baza criteriilor de coloană

Python cu Biblioteca Pandas

# Importing pandas library
import pandas as pd

# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
        'Price': [100, 150, 200, 250, 300],
        'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)

# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)

# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)

Tehnici avansate pentru selectarea rândurilor DataFrame în Pandas

Pe lângă filtrarea de bază folosind indexarea booleană, Pandas oferă tehnici avansate de selectare a rândurilor pe baza valorilor coloanelor. O metodă puternică este utilizarea query() funcția, care vă permite să filtrați rândurile cu o expresie de interogare, făcând sintaxa mai curată și adesea mai intuitivă. De exemplu, în loc să utilizați df[df['Age'] > 25], poti sa scrii df.query('Age > 25'). Această metodă este deosebit de utilă atunci când se ocupă de condiții mai complexe sau când numele coloanelor conțin spații. În plus, cel isin() funcția este benefică atunci când doriți să filtrați rândurile pe baza unei liste de valori. De exemplu, pentru a selecta rânduri în care valoarea coloanei „Oraș” este fie „Chicago”, fie „New York”, puteți utiliza df[df['City'].isin(['Chicago', 'New York'])].

O altă tehnică implică loc și iloc indexatori. The loc indexerul se bazează pe etichete, permițându-vă să selectați rânduri pe baza etichetelor rândurilor și a numelor coloanelor, în timp ce iloc se bazează pe locații întregi, permițând selecția după numere de rând și coloane. Această flexibilitate este deosebit de utilă pentru selectarea rândurilor pe baza unei condiții aplicate unei coloane diferite. De exemplu, df.loc[df['Age'] > 25, 'Name'] va returna numele persoanelor cu vârsta mai mare de 25 de ani. Aceste metode vă extind setul de instrumente pentru manipularea și analizarea eficientă a datelor în Pandas, oferind cod mai ușor de citit și de întreținut.

Întrebări și răspunsuri frecvente despre selectarea rândurilor DataFrame

  1. Cum pot selecta rânduri pe baza mai multor condiții?
  2. Puteți folosi query() funcţionează sau combina condiţii cu operatori logici precum & și |. De exemplu, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
  3. Pot filtra rândurile pe baza unei liste de valori?
  4. Da, folosește isin() funcţie. De exemplu, df[df['City'].isin(['Chicago', 'New York'])].
  5. Care e diferenta dintre loc și iloc?
  6. loc se bazează pe etichete, în timp ce iloc este bazat pe locație întreg. Utilizare loc cu etichete de rând/coloană și iloc cu indici de rând/coloană.
  7. Cum pot selecta anumite coloane în timp ce filtrez rândurile?
  8. Poți să folosești loc. De exemplu, df.loc[df['Age'] > 25, ['Name', 'City']].
  9. Cum gestionez valorile lipsă atunci când selectez rânduri?
  10. Folosește dropna() funcție pentru a elimina rândurile cu valori lipsă sau fillna() pentru a le înlocui cu o valoare specificată.
  11. Pot folosi expresii regulate pentru a filtra rândurile?
  12. Da cel str.contains() funcţionează cu regex=True parametrul vă permite să filtrați rândurile pe baza modelelor regex. De exemplu, df[df['Name'].str.contains('^A', regex=True)].
  13. Cum filtrez rândurile pe baza indexului?
  14. Poți să folosești loc cu numele de index. De exemplu, df.loc[df.index == 'some_index'].
  15. Ce se întâmplă dacă numele coloanelor mele conțin spații sau caractere speciale?
  16. Folosește query() funcție care poate gestiona astfel de nume de coloane cu backtick-uri. De exemplu, df.query('`column name` == value').

Considerări finale despre tehnicile de selecție a rândurilor DataFrame

Selectarea rândurilor dintr-un DataFrame pe baza valorilor coloanelor din Pandas este o abilitate crucială pentru manipularea datelor. Diferitele metode discutate, inclusiv indexarea booleană, query(), isin(), și indexarea bazată pe etichete și pe bază de locații întregi cu loc și iloc, oferă instrumente puternice pentru filtrarea eficientă a datelor. Stăpânirea acestor tehnici permite o mai bună analiză a datelor și un cod mai curat și mai ușor de întreținut.