Selecció de files de DataFrame en funció dels valors de columna a Python

Selecció de files de DataFrame en funció dels valors de columna a Python
Python

Ús de Pandas per filtrar DataFrames per valors de columna

Quan es treballa amb dades a Python, la biblioteca Pandas ofereix eines potents per a la manipulació i l'anàlisi de dades. Una tasca habitual és seleccionar files d'un DataFrame en funció dels valors d'una columna específica. Aquesta operació és similar a la consulta SQL: SELECT * FROM table WHERE nom_columna = algun_valor.

En aquest article, explorarem com aconseguir-ho a Pandas mitjançant diversos mètodes. Tant si esteu filtrant per un sol valor com per diversos criteris, Pandas ofereix maneres intuïtives i eficients de gestionar aquestes operacions. Submergem-nos en els detalls.

Comandament Descripció
pd.DataFrame() Crea un objecte DataFrame a partir d'un diccionari o d'altres estructures de dades.
df[condition] Filtra les files de DataFrame en funció d'una condició, retornant només les que compleixen els criteris.
print() Emet el missatge o DataFrame especificat a la consola.
df['column'] == value Crea una sèrie booleana que s'utilitza per filtrar les files on la columna coincideix amb el valor especificat.
df['column'] >df['column'] > value Crea una sèrie booleana que s'utilitza per filtrar files on els valors de les columnes són superiors al valor especificat.
# Comment S'utilitza per afegir explicacions o notes dins del codi, que no s'executen com a part de l'script.

Implementació de la selecció de files de DataFrame a Pandas

Als scripts proporcionats, la tasca clau és filtrar les files d'un DataFrame en funció de valors de columna específics, un requisit comú en l'anàlisi de dades. El primer script comença important la biblioteca Pandas amb import pandas as pd. Això és essencial, ja que Pandas és una poderosa biblioteca de manipulació de dades a Python. A continuació, creem un DataFrame de mostra utilitzant pd.DataFrame() amb un diccionari que conté dades de noms, edats i ciutats. Aquesta estructura ens permet visualitzar i manipular fàcilment dades tabulars. La part crucial de l'script és on filtrem les files df[df['city'] == 'New York']. Aquesta ordre selecciona totes les files on el valor de la columna de la ciutat és "Nova York". El resultat s'emmagatzema a la variable ny_rows, que després s'imprimeix per mostrar el DataFrame filtrat.

El segon script segueix una estructura similar però se centra a filtrar files en funció d'una condició numèrica. Després d'importar Pandas i crear un DataFrame amb columnes de producte, preu i quantitat, l'script utilitza df[df['price'] > 150] per filtrar les files on el preu és superior a 150. Aquesta ordre produeix un subconjunt del DataFrame original que conté només les files que compleixen la condició especificada. El resultat s'emmagatzema a expensive_products i imprès per a la verificació. Tots dos scripts demostren el poder i la simplicitat de Pandas per a la manipulació de dades. Mitjançant l'ús de la indexació booleana, un mètode on passem una sèrie de valors veritables/fals per filtrar dades, podem seleccionar de manera eficient subconjunts de dades en funció de diverses condicions, cosa que la converteix en una eina inestimable per als analistes de dades i els científics.

Filtrat de files en un DataFrame en funció dels valors de la columna

Python - Ús de Pandas per a operacions de DataFrame

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

Consulta de files de DataFrame en funció dels valors de la columna

Python - Filtrat avançat amb Pandas

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

Tècniques avançades per seleccionar files de DataFrame

A més del filtratge bàsic amb indexació booleana, Pandas ofereix tècniques més avançades per seleccionar files en funció dels valors de les columnes. Un d'aquests mètodes és el query() funció, que us permet utilitzar una sintaxi semblant a SQL per filtrar les files de DataFrame. Per exemple, podeu utilitzar df.query('age > 25 and city == "New York"') per seleccionar files on l'edat sigui superior a 25 i la ciutat sigui Nova York. Aquest mètode pot fer que el vostre codi sigui més llegible, especialment en condicions complexes. A més, Pandas ofereix el loc[] i iloc[] accessoris per a una selecció de fila més precisa. El loc[] L'accessor està basat en etiquetes, el que significa que podeu filtrar les files per les seves etiquetes o per una matriu booleana. En canvi, el iloc[] El descriptor d'accés es basa en la posició de nombres enters, cosa que us permet filtrar les files per les seves posicions d'índex.

Una altra característica potent de Pandas és la capacitat de filtrar les files de DataFrame mitjançant el isin() mètode. Aquest mètode és útil quan necessiteu filtrar files en funció d'una llista de valors. Per exemple, df[df['city'].isin(['New York', 'Los Angeles'])] selecciona files on el valor de la columna de la ciutat és Nova York o Los Angeles. A més, podeu encadenar diverses condicions mitjançant el & i | operadors per crear filtres més complexos. Per exemple, df[(df['age'] > 25) & (df['city'] == 'New York')] filtra les files on l'edat és superior a 25 i la ciutat és Nova York. Aquestes tècniques avançades proporcionen un marc robust per al filtratge de dades, fent de Pandas una eina versàtil per a l'anàlisi i la manipulació de dades.

Preguntes habituals sobre la selecció de files de DataFrame a Pandas

  1. Com puc filtrar les files d'un DataFrame en funció de diversos valors de columna?
  2. Podeu utilitzar la indexació booleana amb múltiples condicions combinades & i |. Per exemple: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Quina és la diferència entre loc[] i iloc[]?
  4. loc[] es basa en etiquetes, mentre que iloc[] està basat en la posició enter. Ús loc[] per filtrar per etiquetes i iloc[] per filtrar per posicions d'índex.
  5. Com puc utilitzar el query() funció per filtrar les files de DataFrame?
  6. El query() La funció us permet utilitzar una sintaxi semblant a SQL. Per exemple: df.query('age > 25 and city == "New York"').
  7. Puc filtrar files segons una llista de valors?
  8. Sí, podeu utilitzar el isin() mètode. Per exemple: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Quina és la millor manera de filtrar les files en funció de la concordança de cadenes?
  10. Podeu utilitzar el str.contains() mètode. Per exemple: df[df['city'].str.contains('New')].
  11. Com puc seleccionar les files on falten els valors de les columnes?
  12. Podeu utilitzar el isna() mètode. Per exemple: df[df['age'].isna()].
  13. Com puc filtrar files mitjançant una funció personalitzada?
  14. Podeu utilitzar el apply() mètode amb funció lambda. Per exemple: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Puc filtrar files segons els valors de l'índex?
  16. Sí, podeu utilitzar el index.isin() mètode. Per exemple: df[df.index.isin([1, 3, 5])].

Punts clau per a la selecció de files de DataFrame

La selecció de files d'un DataFrame en funció dels valors de les columnes és una habilitat fonamental en l'anàlisi de dades amb Pandas. Utilitzant la indexació booleana, loc[], iloc[], query(), i isin() Els mètodes permeten un filtrat de dades eficient. Dominar aquestes tècniques millora la vostra capacitat per manipular i analitzar conjunts de dades de manera eficaç.