Metodi utili delle Series
Usi describe(), value_counts(), unique() e map() per riepilogare e trasformare rapidamente una Series.
Metodi utili delle Series è una lezione Pandas & NumPy Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Pandas & NumPy Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Pandas & NumPy Academy include 4 lezioni in totale.
Riepilogo rapido con describe()
s.describe() genera un riepilogo statistico con una sola chiamata: conteggio, media, deviazione standard, minimo, 25° percentile (Q1), mediana (Q2), 75° percentile (Q3) e massimo. Per le Series di stringhe restituisce invece conteggio, valori distinti, valore più frequente e frequenza. È il modo più rapido per farsi un'idea della distribuzione di una colonna durante la prima esplorazione di un dataset.
import pandas as pd
ages = pd.Series([25, 32, 19, 45, 28, 31, 22, 40])
print(ages.describe())
# count 8.000000
# mean 30.250000
# std 8.406...
# min 19.000000
# 25% 24.250000
# 50% 29.500000
# 75% 34.750000
# max 45.000000value_counts() per le tabelle di frequenza
s.value_counts() restituisce una nuova Series con i valori distinti come indice e il relativo numero di occorrenze come dati, ordinati in modo decrescente per conteggio. Passi normalize=True per ottenere proporzioni anziché conteggi assoluti. È la prima operazione da eseguire su una colonna categoriale per comprenderne la distribuzione.
import pandas as pd
colors = pd.Series(['red', 'blue', 'red', 'green', 'blue', 'red'])
print(colors.value_counts())
# red 3
# blue 2
# green 1
print(colors.value_counts(normalize=True).round(2))
# red 0.50 blue 0.33 green 0.17unique() e nunique()
s.unique() restituisce un array NumPy dei valori distinti nell'ordine della loro prima occorrenza (a differenza di value_counts, che ordina per frequenza). s.nunique() restituisce come intero il numero di valori distinti: la cardinalità della colonna. Entrambi ignorano NaN per impostazione predefinita. Usi nunique(dropna=False) per conteggiare NaN come valore distinto.
import pandas as pd
s = pd.Series(['apple', 'banana', 'apple', 'cherry', 'banana'])
print(s.unique()) # ['apple' 'banana' 'cherry']
print(s.nunique()) # 3map() per la trasformazione elemento per elemento
s.map() applica una funzione, un dizionario o un'altra Series a ogni elemento. Quando passa un dizionario, ogni valore viene sostituito con il valore corrispondente del dizionario, mentre i valori non presenti nel dizionario diventano NaN. Quando passa una funzione, questa viene applicata elemento per elemento. map è ideale per ricodificare le etichette categoriali o applicare tabelle di ricerca.
import pandas as pd
grades = pd.Series(['A', 'B', 'C', 'A', 'B'])
gpa = {'A': 4.0, 'B': 3.0, 'C': 2.0}
print(grades.map(gpa))
# 0 4.0
# 1 3.0
# 2 2.0
# 3 4.0
# 4 3.0apply() per le funzioni personalizzate
s.apply(func) applica un callable Python a ogni elemento e raccoglie i risultati. A differenza di map(), è progettato per funzioni più complesse che possono restituire oggetti non scalari. Per semplici trasformazioni elemento per elemento, preferisca map() o un'espressione vettorializzata; usi apply() quando la logica è troppo complessa per essere vettorializzata direttamente.
import pandas as pd
sentences = pd.Series(['Hello world', 'Pandas is great', 'Data science'])
word_counts = sentences.apply(lambda x: len(x.split()))
print(word_counts)
# 0 2
# 1 3
# 2 2sort_values() e sort_index()
s.sort_values() restituisce la Series ordinata in base ai valori dei dati in ordine crescente (passi ascending=False per l'ordine decrescente). s.sort_index() ordina in base alle etichette dell'indice. Per impostazione predefinita, nessuno dei due metodi modifica la Series originale. Passi inplace=True per modificarla sul posto (una scelta meno consigliata nel moderno codice Pandas che concatena le operazioni).
import pandas as pd
s = pd.Series([30, 10, 50, 20], index=['d', 'a', 'c', 'b'])
print(s.sort_values())
# a 10
# b 20
# d 30
# c 50
print(s.sort_index())
# a 10
# b 20
# c 50
# d 30isin() per verificare l'appartenenza
s.isin(values) restituisce una Series booleana con valore True nei punti in cui l'elemento appartiene all'elenco o al set fornito. È più leggibile rispetto a usare più condizioni con | e significativamente più veloce per set di grandi dimensioni. Viene usato comunemente per filtrare le righe appartenenti a un gruppo specifico o per contrassegnare i record corrispondenti a un elenco di ricerca.
import pandas as pd
countries = pd.Series(['DE', 'US', 'FR', 'UK', 'US', 'DE'])
nordics = ['DE', 'FR']
print(countries.isin(nordics))
# 0 True 1 False 2 True 3 False 4 False 5 True
print(countries[countries.isin(nordics)])between() per filtrare per intervallo
s.between(left, right, inclusive='both') restituisce una Series booleana con valore True nei punti in cui il valore rientra nell'intervallo [left, right]. Per impostazione predefinita, entrambi gli estremi sono inclusi. È più conciso rispetto a scrivere (s >= left) & (s <= right) e comunica chiaramente l'intento. È utile per filtrare intervalli numerici, come fasce d'età o fasce di prezzo.
import pandas as pd
scores = pd.Series([45, 72, 83, 91, 55, 68])
pass_mask = scores.between(60, 100)
print(pass_mask)
# 0 False 1 True 2 True 3 True 4 False 5 True
print(scores[pass_mask].values) # [72 83 91 68]head() e tail() per un'ispezione rapida
s.head(n) restituisce i primi n elementi (5 per impostazione predefinita) e s.tail(n) restituisce gli ultimi n. Questi metodi vengono usati continuamente durante l'esplorazione dei dati per dare un'occhiata all'inizio e alla fine di una Series lunga senza stampare migliaia di righe. Restituiscono una nuova Series (una porzione), quindi non modificano l'originale.
import pandas as pd
s = pd.Series(range(100))
print(s.head(3))
# 0 0
# 1 1
# 2 2
print(s.tail(3))
# 97 97
# 98 98
# 99 99rename() per cambiare il nome
s.rename('new_name') restituisce una nuova Series con un attributo name diverso. Per rinominare le etichette dell'indice, passi un dict o una funzione: s.rename(index={'old': 'new'}). Rinominare è importante prima di combinare le Series in un DataFrame, perché il name della Series diventa l'intestazione della colonna. Rinomini sempre invece di riassegnare valori grezzi.
import pandas as pd
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='original')
renamed = s.rename('updated').rename(index={'a': 'x', 'b': 'y', 'c': 'z'})
print(renamed)
# x 1
# y 2
# z 3
# Name: updatedidxmin() e idxmax()
s.idxmin() restituisce l'etichetta dell'indice del valore minimo e s.idxmax() restituisce l'etichetta del valore massimo. È più utile di argmin/argmax quando l'indice contiene etichette significative, come date o nomi di prodotti: si ottiene l'identificatore effettivo, non solo un numero di posizione.
import pandas as pd
scores = pd.Series({'Alice': 88, 'Bob': 73, 'Carol': 95, 'Dan': 60})
print('Best:', scores.idxmax(), scores.max()) # Carol 95
print('Worst:', scores.idxmin(), scores.min()) # Dan 60Verifica rapida
Verifichi la Sua comprensione dei metodi utili per le Series presentati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: describe() fornisce un riepilogo statistico con una sola chiamata, value_counts() crea una tabella delle frequenze dei valori univoci e map() traduce i valori usando un dict, mentre apply() esegue una funzione personalizzata su ogni elemento. Ora inizieremo a lavorare con i DataFrame, lo strumento bidimensionale fondamentale per l'analisi dei dati con Pandas.
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Metodi utili delle Series» è gratuita?
Sì — il testo completo di «Metodi utili delle Series» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Pandas & NumPy Academy, passa a CoddyKit PRO. Il corso Pandas & NumPy Academy include 4 lezioni in totale.
Cosa imparerò in «Metodi utili delle Series»?
Usi describe(), value_counts(), unique() e map() per riepilogare e trasformare rapidamente una Series. Eserciti Pandas & NumPy Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Pandas & NumPy Academy?
Non è richiesta alcuna esperienza precedente. Pandas & NumPy Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Metodi utili delle Series»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Pandas & NumPy Academy?
Sì. Ogni lezione Pandas & NumPy Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Creazione di una Series
- Accesso basato su etichette e posizioni
- Operazioni vettorializzate sulle Series
- Metodi utili delle Series