Selezione di righe DataFrame in base ai valori delle colonne in Python

Selezione di righe DataFrame in base ai valori delle colonne in Python
Python

Utilizzo di Panda per filtrare i frame di dati in base ai valori delle colonne

Quando si lavora con i dati in Python, la libreria Pandas offre potenti strumenti per la manipolazione e l'analisi dei dati. Un'attività comune è selezionare le righe da un DataFrame in base ai valori in una colonna specifica. Questa operazione è simile alla query SQL: SELECT * FROM tabella WHERE nome_colonna = valore_qualcosa.

In questo articolo esploreremo come ottenere questo risultato nei Panda utilizzando vari metodi. Sia che tu stia filtrando in base a un singolo valore o a più criteri, Pandas fornisce modi intuitivi ed efficienti per gestire tali operazioni. Immergiamoci nei dettagli.

Comando Descrizione
pd.DataFrame() Crea un oggetto DataFrame da un dizionario o altre strutture dati.
df[condition] Filtra le righe DataFrame in base a una condizione, restituendo solo quelle che soddisfano i criteri.
print() Restituisce il messaggio o DataFrame specificato alla console.
df['column'] == value Crea una serie booleana utilizzata per filtrare le righe in cui la colonna corrisponde al valore specificato.
df['column'] >df['column'] > value Crea una serie booleana utilizzata per filtrare le righe in cui i valori della colonna sono maggiori del valore specificato.
# Comment Utilizzato per aggiungere spiegazioni o note all'interno del codice, che non vengono eseguite come parte dello script.

Implementazione della selezione della riga DataFrame in Panda

Negli script forniti, l'attività chiave è filtrare le righe da un DataFrame in base a valori di colonna specifici, un requisito comune nell'analisi dei dati. Il primo script inizia importando la libreria Panda con import pandas as pd. Questo è essenziale poiché Pandas è una potente libreria di manipolazione dei dati in Python. Successivamente, creiamo un DataFrame di esempio utilizzando pd.DataFrame() con un dizionario contenente dati per nomi, età e città. Questa struttura ci consente di visualizzare e manipolare facilmente i dati tabulari. La parte cruciale dello script è dove filtriamo le righe utilizzando df[df['city'] == 'New York']. Questo comando seleziona tutte le righe in cui il valore della colonna della città è "New York". Il risultato viene memorizzato nella variabile ny_rows, che viene quindi stampato per visualizzare il DataFrame filtrato.

Il secondo script segue una struttura simile ma si concentra sul filtraggio delle righe in base a una condizione numerica. Dopo aver importato Panda e creato un DataFrame con colonne prodotto, prezzo e quantità, lo script utilizza df[df['price'] > 150] per filtrare le righe in cui il prezzo è maggiore di 150. Questo comando produce un sottoinsieme del DataFrame originale contenente solo le righe che soddisfano la condizione specificata. Il risultato è memorizzato in expensive_products e stampato per verifica. Entrambi gli script dimostrano la potenza e la semplicità di Panda per la manipolazione dei dati. Utilizzando l'indicizzazione booleana, un metodo in cui passiamo una serie di valori vero/falso per filtrare i dati, possiamo selezionare in modo efficiente sottoinsiemi di dati in base a varie condizioni, rendendolo uno strumento prezioso per analisti e scienziati di dati.

Filtraggio delle righe in un DataFrame in base ai valori delle colonne

Python: utilizzo di Panda per operazioni 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

Interrogazione di righe DataFrame in base ai valori delle colonne

Python: filtraggio avanzato con Panda

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

Tecniche avanzate per la selezione di righe DataFrame

Oltre al filtraggio di base con l'indicizzazione booleana, Pandas offre tecniche più avanzate per selezionare le righe in base ai valori delle colonne. Uno di questi metodi è il query() funzione, che consente di utilizzare una sintassi simile a SQL per filtrare le righe DataFrame. Ad esempio, puoi usare df.query('age > 25 and city == "New York"') per selezionare le righe in cui l'età è superiore a 25 anni e la città è New York. Questo metodo può rendere il codice più leggibile, soprattutto per condizioni complesse. Inoltre, Pandas fornisce il file loc[] E iloc[] accessori per una selezione delle righe più precisa. IL loc[] la funzione di accesso è basata su etichette, il che significa che puoi filtrare le righe in base alle loro etichette o a un array booleano. Al contrario, il iloc[] la funzione di accesso è basata sulla posizione di numeri interi e consente di filtrare le righe in base alla posizione dell'indice.

Un'altra potente funzionalità di Panda è la possibilità di filtrare le righe DataFrame utilizzando il file isin() metodo. Questo metodo è utile quando è necessario filtrare le righe in base a un elenco di valori. Per esempio, df[df['city'].isin(['New York', 'Los Angeles'])] seleziona le righe in cui il valore della colonna della città è New York o Los Angeles. Inoltre, puoi concatenare più condizioni utilizzando il file & E | operatori per creare filtri più complessi. Ad esempio, df[(df['age'] > 25) & (df['city'] == 'New York')] filtra le righe in cui l'età è maggiore di 25 anni e la città è New York. Queste tecniche avanzate forniscono una struttura solida per il filtraggio dei dati, rendendo Pandas uno strumento versatile per l'analisi e la manipolazione dei dati.

Domande comuni sulla selezione delle righe DataFrame in Panda

  1. Come posso filtrare le righe in un DataFrame in base a più valori di colonna?
  2. È possibile utilizzare l'indicizzazione booleana con più condizioni combinate utilizzando & E |. Per esempio: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Qual è la differenza tra loc[] E iloc[]?
  4. loc[] è basato sull'etichetta, mentre iloc[] è basato sulla posizione intera. Utilizzo loc[] per filtrare per etichette e iloc[] per filtrare in base alle posizioni dell'indice.
  5. Come posso usare il query() funzione per filtrare le righe DataFrame?
  6. IL query() La funzione consente di utilizzare una sintassi simile a SQL. Per esempio: df.query('age > 25 and city == "New York"').
  7. Posso filtrare le righe in base a un elenco di valori?
  8. Sì, puoi usare il isin() metodo. Per esempio: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Qual è il modo migliore per filtrare le righe in base alla corrispondenza delle stringhe?
  10. Puoi usare il str.contains() metodo. Per esempio: df[df['city'].str.contains('New')].
  11. Come seleziono le righe in cui mancano i valori delle colonne?
  12. Puoi usare il isna() metodo. Per esempio: df[df['age'].isna()].
  13. Come posso filtrare le righe utilizzando una funzione personalizzata?
  14. Puoi usare il apply() metodo con una funzione lambda. Per esempio: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Posso filtrare le righe in base ai valori dell'indice?
  16. Sì, puoi usare il index.isin() metodo. Per esempio: df[df.index.isin([1, 3, 5])].

Punti chiave per la selezione della riga DataFrame

La selezione delle righe da un DataFrame in base ai valori delle colonne è un'abilità fondamentale nell'analisi dei dati con Panda. Utilizzando l'indicizzazione booleana, loc[], iloc[], query(), E isin() metodi consentono un filtraggio efficiente dei dati. Padroneggiare queste tecniche migliora la tua capacità di manipolare e analizzare i set di dati in modo efficace.