Sbloccare il potere di Pandas Un’analisi approfondita di .loc e .iloc

Esplorare il potenziale di Pandas Analisi dettagliata di .loc e .iloc

Potenziare l’analisi dei dati con Pandas: Padronanza di .loc e .iloc per la selezione precisa dei dati

Creato in Leonardoai

Il linguaggio di programmazione Python è una risorsa importante nell’ambito della scienza dei dati e dell’analisi grazie alla sua facilità d’uso e alle sue robuste librerie. Pandas, una di queste librerie, fornisce strumenti flessibili e potenti per la manipolazione dei dati, diventando così una scelta popolare per i data scientist di tutto il mondo.

Nel processo di analisi dei dati, la capacità di gestire e manipolare i dati in modo efficiente è fondamentale, ed è qui che Pandas brilla. Tra i vari strumenti offerti da Pandas, tre spiccano per la loro versatilità: loc, iloc e ix.

Questi metodi sono fondamentali per la selezione dei dati in Pandas, offrendo agli utenti una notevole flessibilità nell’accesso e nella modifica dei dati in un DataFrame di Pandas.

La selezione dei dati, un passaggio essenziale nell’analisi dei dati, comporta la selezione di dati specifici da un set di dati per l’analisi, la visualizzazione o l’input di algoritmi di machine learning.

Perché utilizzare loc, iloc o ix?

Spesso, i data scientist hanno bisogno solo di una parte di un intero set di dati. È qui che i metodi loc, iloc e ix sono preziosi, in quanto consentono una selezione efficiente dei dati in base alla posizione del DataFrame o a condizioni specifiche.

Questo articolo si propone di approfondire questi tre metodi fondamentali di Pandas, discutendone i casi d’uso e le sfumature.

Utilizzeremo set di dati predefiniti, per consentirti di riprodurre gli stessi codici, con l’obiettivo di fornirti le conoscenze e la fiducia necessarie per manipolare e navigare qualsiasi set di dati utilizzando Pandas in Python.

Se vuoi leggere di più sui metodi di Pandas, ecco per te 17 trucchi per Pandas. Inoltre, puoi utilizzare PandaSAI se ti senti pigro nel scrivere codici e preferisci scrivere prompt.

Ok, pronto per iniziare? Iniziamo l’esplorazione.

Comprensione della selezione dei dati in Pandas

Il processo di selezione dei dati è un aspetto fondamentale di qualsiasi analisi dei dati o attività di data science.

Prima di analizzare i dati, visualizzarli o renderli pronti per gli algoritmi di machine learning, dovremmo selezionare i dati di cui abbiamo bisogno da un set di dati più ampio.

Senza selezionare e gestire parte dei dati, gli algoritmi funzionano molto più lentamente o potremmo rimuovere dati effettivamente importanti.

La selezione dei dati in Pandas va oltre la semplice scelta di una colonna o una riga. Comporta la scelta di sottoinsiemi specifici di dati in base a determinati criteri. In Pandas, lavoriamo spesso con dataframe, che sono strutture dati simili a tabelle, con righe e colonne.

Le righe in un dataframe rappresentano diverse osservazioni, mentre le colonne rappresentano diverse caratteristiche o variabili. Un aspetto chiave della versatilità di Pandas deriva dai suoi potenti metodi di selezione dei dati, che ci consentono di isolare rapidamente segmenti particolari di questi dataframe in base alle nostre esigenze.

Comprendere la selezione dei dati è davvero importante perché ci darà la possibilità di esplorare e comprendere meglio i dati.

Con le tecniche giuste, possiamo raccogliere i dati di cui abbiamo bisogno, che si tratti di selezionare righe specifiche con determinate condizioni o di selezionare un insieme di colonne, che è importante per la nostra analisi.

Metodi di Selezione dei Dati in Python

In Pandas, vengono utilizzati tre metodi principali per la selezione dei dati: loc, iloc e ix. Ciascuno di questi metodi offre vantaggi propri e ha casi d’uso specifici in cui brilla.

Il metodo loc viene utilizzato per la selezione dei dati basata sui label, iloc per la selezione basata sugli indici interi e ix, che è un metodo più versatile che supporta sia la selezione basata sui label che quella basata sugli indici interi.

Questi metodi ci aiutano a selezionare i dati dal dataframe, in modi diversi.

Nelle sezioni successive, esploreremo in dettaglio questi metodi utilizzando un dataset predefinito.

Ciò ti darà una solida conoscenza della selezione dei dati con pandas, che è un passo importante nel tuo percorso per diventare un analista o scienziato dei dati competente.

Quindi, iniziamo la nostra immersione approfondita in questi metodi di selezione con il metodo loc nella prossima sezione.

Selezione dei dati con loc

Il metodo loc è uno strumento potente nella libreria Pandas, utilizzato per la selezione dei dati basata su etichette. Ci consente di selezionare i dati utilizzando l’etichetta effettiva dell’indice o del nome della colonna, il che lo rende piuttosto intuitivo da usare.

Per comprendere loc in azione, utilizzeremo un dataset integrato nella libreria seaborn: il dataset ‘titanic’. Questo dataset è composto dai dati dei passeggeri del viaggio infelice del Titanic, inclusi informazioni sull’età, sul sesso, sulla tariffa e se sono sopravvissuti o meno all’affondamento. Utilizzando il metodo loc, possiamo approfondire questo dataset e estrarre rapidamente informazioni interessanti.

Iniziamo importando le librerie necessarie e caricando i dati.

import seaborn as snsimport pandas as pd# Carica il dataset 'titanic' da seaborntitanic = sns.load_dataset('titanic')# Mostra le prime righe dei datititanic.head()
Output — Immagine dell'autore

Ora, utilizziamo il metodo loc. Il formato di un comando loc è il seguente: dataframe.loc[righe, colonne].

Supponiamo che vogliamo selezionare il primo passeggero nel nostro dataframe.

Possiamo farlo specificando l’etichetta dell’indice, che in questo caso è 0.

Ecco il codice.

# Seleziona la prima riga e tutte le colonnefirst_passenger = titanic.loc[0, :]print(first_passenger)

Ecco l’output.

Prima riga del dataset del titanic — Immagine dell'autore

Questa flessibilità non si limita alla selezione delle righe. Possiamo anche selezionare colonne specifiche. Supponiamo che siamo interessati solo all’età e alla tariffa dei primi tre passeggeri. Ecco come potremmo utilizzare loc per selezionare questi dati:

# Seleziona le prime tre righe e colonne specifichefirst_three_passengers_data = titanic.loc[[0, 1, 2], ['age', 'fare']]print(first_three_passengers_data)

Ecco l’output.

Prime tre righe con colonne di età e tariffa — Immagine dell'autore

Questo è solo un’introduzione alle capacità del metodo loc. Può anche gestire condizioni booleane, consentendoci di selezionare righe in cui viene soddisfatta una determinata condizione. Supponiamo che vogliamo trovare tutti i passeggeri di età inferiore a 18 anni. Questo può essere facilmente ottenuto con loc.

# Seleziona tutti i passeggeri sotto i 18 anniunder_18_passengers = titanic.loc[titanic['age'] < 18, :]under_18_passengers

Ecco l’output.

I passeggeri sotto i 18 anni — Immagine dell'autore

Il metodo loc è versatile, intuitivo ed efficace nella selezione dei dati in base alle etichette. Tuttavia, a volte è necessario selezionare i dati in base alla posizione anziché alle etichette. Ecco dove entra in gioco il metodo iloc, che esploreremo nella prossima sezione.

Selezione dei dati con iloc

Mentre loc funge da potente strumento per la selezione basata sulle etichette, Pandas fornisce anche il metodo iloc per la selezione basata esclusivamente sulla posizione degli interi. Il metodo iloc consente di accedere alle righe e alle colonne di un DataFrame specificando le rispettive posizioni intere.

Continuiamo la nostra esplorazione con il dataset ‘titanic’. Utilizzando iloc, possiamo selezionare righe o colonne specifiche in base alle loro posizioni intere, indipendentemente dalle etichette degli indici o dai nomi delle colonne.

La sintassi per iloc è molto simile a loc: dataframe.iloc[righe, colonne]. La differenza sta nel modo in cui si specificano le righe e le colonne. Con iloc, si utilizza la posizione intera, non l’etichetta.

Ad esempio, selezioniamo la prima riga (cioè la posizione 0) del DataFrame:

# Seleziona la prima riga e tutte le colonnefirst_row = titanic.iloc[0, :]print(first_row)

Ecco l’output.

Prima riga e tutte le colonne - Immagine di Autore

iloc ti aiuta anche a selezionare più righe o colonne contemporaneamente.

Ad esempio, se si desidera selezionare le prime tre righe e le colonne nella 1a (posizione dell’indice 0) e nella 4a (posizione dell’indice 3), si farebbe:

# Seleziona le prime tre righe e le colonne specificheselected_data = titanic.iloc[0:3, [0, 3]]print(selected_data)

Ecco l’output.

Prima tre righe età e stato di sopravvivenza - Immagine di Autore

Si noti che quando si effettua una suddivisione con iloc, il limite di inizio è incluso, ma il limite di arresto è escluso, a differenza della suddivisione basata sulle etichette con loc. Pertanto, 0:3 seleziona le righe alle posizioni intere 0, 1 e 2.

È anche importante notare che l’indicizzazione negativa funziona con iloc, a differenza di loc. Ciò significa che è possibile utilizzare -1 come indice per selezionare l’ultima riga o colonna:

# Seleziona l'ultima riga e tutte le colonnelast_row = titanic.iloc[-1, :]print(last_row)

Ecco l’output.

Ultima riga e tutte le colonne - Immagine di Autore

Tra loc e iloc, hai molta flessibilità nella selezione dei dati da un DataFrame. Puoi scegliere di selezionare in base alle etichette, alle posizioni degli interi o a una combinazione di entrambi. Sapere quando e come utilizzare queste funzioni può migliorare notevolmente le tue abilità di manipolazione dei dati. Tuttavia, Pandas offre altro oltre a queste due funzioni. Nella prossima sezione, daremo un’occhiata a un altro metodo per la selezione dei dati: i metodi at e iat.

Utilizzo di at e iat per un accesso più veloce

Mentre loc e iloc sono senza dubbio strumenti potenti per la selezione dei dati; a volte, hai bisogno di un metodo ancora più veloce, specialmente quando lavori con grandi dataset. Ecco dove entrano in gioco at e iat. Sia at che iat forniscono un accesso più rapido ai dati rispetto a loc e iloc.

Il compromesso per questa velocità è che at e iat possono accedere solo a un singolo valore alla volta. Vengono utilizzati per ottenere o impostare un singolo valore in un DataFrame o una Serie e non possono essere utilizzati per l’indicizzazione booleana o per accedere a valori multipli contemporaneamente.

Vediamoli in azione. Continuando con il nostro dataset ‘titanic’, supponiamo che vogliamo accedere rapidamente al ‘fare’ del passeggero nella prima riga:

# Usando `at`fare_at = titanic.at[0, 'fare']print(fare_at)# Usando `iat`fare_iat = titanic.iat[0, 8]print(fare_iat)
Tariffa nella prima etichetta

Nel primo esempio, viene utilizzato at per accedere al valore ‘fare’ in base all’indice dell’etichetta, che in questo caso è 0.

Nel secondo esempio, viene utilizzato iat per accedere al valore ‘fare’ in base alla sua posizione intera (8) nella riga.

Ora che abbiamo coperto tutti questi metodi di selezione dei dati in Pandas, concludiamo discutendo alcune best practice per il loro utilizzo. Ciò aiuterà a garantire che stai utilizzando lo strumento giusto per il lavoro quando lavori con i tuoi dataset.

Conclusioni

Comprendere loc, iloc, at e iat migliorerà significativamente la tua efficienza ed efficacia quando lavori con i dati in Pandas.

Questi metodi forniscono opzioni flessibili e potenti per la selezione dei dati, consentendoti di gestire praticamente qualsiasi compito di selezione dei dati che potresti incontrare.

Continua a praticare con questi strumenti e diventerai un esperto di Pandas in poco tempo.

Grazie per aver letto il mio articolo.

Ecco la mia newsletter quotidiana su AI e Data Science .

Ecco il mio foglio di riferimento NumPy .

Ecco il codice sorgente del progetto dati “Come diventare un miliardario” .

Ecco il codice sorgente del progetto dati “Task di classificazione con 6 diversi algoritmi usando Python” .

Ecco il codice sorgente del progetto dati “Analisi dell’efficienza energetica degli alberi decisionali” .

Ecco il codice sorgente del progetto dati “Analisi degli articoli DataDrivenInvestor 2022” .

Se non sei ancora un membro di VoAGI e vuoi ampliare le tue conoscenze attraverso la lettura, ecco il mio link di riferimento.

Ecco il mio E-Book: Come imparare il Machine Learning con ChatGPT?

“Il machine learning è l’ultima invenzione che l’umanità dovrà mai fare.” Nick Bostrom