Qual è la differenza tra loc e iloc in Panda??
Annota questa come una delle domande più comuni che sentirai dai neofiti di Python e dagli aspiranti alla scienza dei dati.. C'è un'alta probabilità che incontrerai questa domanda in un'intervista con uno scienziato di dati o un analista di dati.
Onestamente, anche io inizialmente ero confuso quando ho iniziato a imparare Python qualche anno fa. Ma non preoccuparti! loc vs iloc in Pandas può essere una domanda complicata, ma la risposta è piuttosto semplice una volta che ci hai preso la mano.
Ed è quello che intendo aiutarti a raggiungere in questo articolo.. Ci fidiamo dei Panda, la libreria Python più popolare, per rispondere alla domanda loc vs. iloca.
La libreria Pandas contiene diversi metodi per un comodo filtraggio dei dati: loc y iloc tra loro. Con questi, possiamo eseguire praticamente qualsiasi attività di selezione dei dati nei frame di dati di Pandas.
Dai un'occhiata ai nostri due popolari corsi Python se non conosci la programmazione Python. Sono gratuiti e rappresentano un ottimo primo passo nel tuo percorso di apprendimento automatico.:
Bene, tuffiamoci!
loc contro iloc nei panda
Quindi, Che cos'è loc e iloc in primo luogo? Dobbiamo rispondere a questa domanda prima di poter capire dove usare ciascuna di queste funzioni Panda in Python.
loc in panda
luogo è basato su tag, il che significa che dobbiamo specificare il nome delle righe e delle colonne che dobbiamo filtrare.
Ad esempio, digamos que buscamos las filas cuyo indiceIl "Indice" È uno strumento fondamentale nei libri e nei documenti, che consente di individuare rapidamente le informazioni desiderate. In genere, Viene presentato all'inizio di un'opera e organizza i contenuti in modo gerarchico, compresi capitoli e sezioni. La sua corretta preparazione facilita la navigazione e migliora la comprensione del materiale, rendendolo una risorsa essenziale sia per gli studenti che per i professionisti in vari settori.... è 1, 2 oh 100. Non avremo il primo, la seconda o la centesima riga qui. Anziché, otterremo i risultati solo se il nome di qualsiasi indice è 1, 2 oh 100.
Quindi, possiamo filtrare i dati utilizzando la funzione loc in Pandas anche se gli indici non sono un numero intero nel nostro set di dati.
iloc in panda
In secondo luogo, iloc si basa su indici interi. Allora qui, dobbiamo specificare righe e colonne in base al loro indice intero.
Diciamo che cerchiamo le righe con indice 1, 2 oh 100. Restituirà il primo, seconda e centesima riga, indipendentemente dal nome o dalle etichette che abbiamo nell'indice nel nostro set di dati.
Vedremo diversi esempi in questo articolo su come usare luogo e iloca per il processo di selezione e aggiornamento dei dati in Python.
loc e iloc in azione (usando i panda in Python)
È ora di accendere il tuo notebook Jupyter! Ci tufferemo direttamente nel codice e capiremo come e dove usare loc contro iloc in Python.
Crea un set di dati di esempio
Primo, abbiamo bisogno di un set di dati per applicare loc e iloc, verità? Facciamolo.
Creeremo un set di dati degli studenti campione composto da 5 colonne: età, sezione, cittadina, sesso e colore preferito. Questo set di dati conterrà variabili sia numeriche che categoriali:
Trova tutte le righe in base a qualsiasi condizione in una colonna
Una cosa che usiamo quasi sempre quando esploriamo un set di dati: filtrare i dati in base a una determinata condizione. Ad esempio, potremmo aver bisogno di trovare tutte le righe nel nostro set di dati in cui l'età è maggiore di x anni, o la città è delhi, e così via.
Possiamo risolvere i tipi di query con una semplice riga di codice usando pandas.DataFrame.loc[]. Abbiamo solo bisogno di passare la condizione all'interno dell'istruzione loc.
Proviamo a trovare le righe in cui il valore di età è più grande di O uguale a 15:
Prova il codice sopra nella finestra di codifica live qui sotto!!
Trova tutte le righe con più di una condizione
Allo stesso modo, possiamo anche utilizzare più condizioni per filtrare i nostri dati, come trovare tutte le righe in cui l'età è maggiore o uguale a 12 e anche il genere è maschile:
Seleziona un intervallo di righe utilizzando loc
usando loc, possiamo anche tagliare il panda frame di dati su una varietà di indici. Se gli indici non sono ordinati, selezionerà solo le righe con gli indici 1 e 3 (come vedrai nell'esempio seguente). E se gli indici non sono numeri, quindi non possiamo dividere il nostro frame di dati.
Quindi, dobbiamo usare il iloca funzione per tagliare il nostro frame di dati Pandas.
Seleziona solo le colonne obbligatorie con una condizione
Possiamo anche selezionare le colonne richieste dalle righe che soddisfano la nostra condizione.
Ad esempio, se il nostro set di dati contiene centinaia di colonne e vogliamo vederne solo alcune, possiamo aggiungere un elenco di colonne dopo la condizione all'interno dell'istruzione loc:
Aggiorna i valori di una particolare colonna nelle righe selezionate
Questo è uno dei miei trucchi preferiti di Python Pandas!!
Spesso dobbiamo aggiornare i valori nel nostro set di dati in base a una certa condizione. Ad esempio, se i valori in età sono maggiori di uguali a 12, quindi vogliamo aggiornare i valori della sezione della colonna per essere “m”.
Possiamo farlo eseguendo a di continuo pure, ma se il nostro set di dati è grande, ci vorrebbe un'eternità per completare l'attività. Usando loc in Pandas, possiamo farlo in pochi secondi, Anche in set di dati più grandi!
Dobbiamo solo specificare la condizione seguita dalla colonna di destinazione e quindi assegnare il valore con cui vogliamo aggiornare:
Aggiorna i valori di più colonne nelle righe selezionate
Se vogliamo aggiornare più colonne con valori diversi, possiamo usare la seguente sintassi.
In questo esempio, se il valore della colonna età è più grande di 20, quindi la funzione loc aggiornerà i valori nella colonna sezione insieme a “S“E i valori della colonna cittadina insieme a Pune:
Seleziona le righe con gli indici usando iloc
Quando usiamo iloc, dobbiamo specificare le righe e le colonne in base al loro indice intero. Se vogliamo selezionare solo la prima e la terza riga, dobbiamo semplicemente elencarlo nell'istruzione iloc con il nostro frame di dati:
Seleziona righe con indici e colonne particolari
In precedenza, selezioniamo alcune colonne dal set di dati utilizzando la funzione loc. Possiamo farlo usando la funzione iloc. Tieni presente che è necessario fornire il numero di indice della colonna anziché il nome della colonna:
Seleziona un intervallo di righe utilizzando iloc
Possiamo anche tagliare un frame di dati usando iloc. Dobbiamo fornire il Inizio indice e end_index + 1 per tagliare un determinato frame di dati. Se gli indici non sono i numeri ordinati, quindi selezionerà il indice_inizio numero di riga fino a end_index:
Seleziona un intervallo di righe e colonne usando iloc
Taglia la cornice dati in righe e colonne. Nel seguente esempio, selezioniamo le righe di (1-2) e le colonne di (2-3).
loc e iloc sono due funzioni super utili in Panda su cui faccio molto affidamento. Sono sicuro che li utilizzerai anche nel tuo percorso di apprendimento automatico. E se è un utente R che passa a Python, Sono sicuro che troverai loc e iloc abbastanza intuitivi.
Consiglio vivamente di prendere il nostro Python per la scienza dei dati e Panda per l'analisi dei dati nei corsi Python se non conosci la programmazione Python. Sono gratuiti e rappresentano un ottimo primo passo nel tuo percorso di apprendimento automatico.