Creazione di una Series
Costruisca una Series Pandas a partire da una lista Python, un dict e un array NumPy e ne analizzi gli attributi index e values.
Creazione di una Series è una lezione Pandas & NumPy Academy gratuita su CoddyKit. Questa è la lezione 1 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.
Che cos'è una Series di Pandas
Una Series di Pandas è un array unidimensionale con etichette, capace di contenere qualsiasi tipo di dato: interi, numeri a virgola mobile, stringhe, oggetti Python o persino altre Series. La si può considerare un array NumPy con un index personalizzato (etichette per ogni elemento). È l'indice a rendere le Series molto più potenti dei semplici array nelle attività di analisi dei dati in cui i valori devono avere nomi descrittivi.
import pandas as pd
import numpy as np
s = pd.Series([10, 20, 30, 40])
print(s)
# 0 10
# 1 20
# 2 30
# 3 40
# dtype: int64Creare una Series da una lista Python
Passare una lista Python a pd.Series() crea una Series con un RangeIndex intero predefinito (0, 1, 2, ...). Può fornire etichette di indice personalizzate tramite il parametro index=. La lunghezza della lista di indici deve corrispondere alla lunghezza dei dati. Le etichette possono essere stringhe, interi, date o qualsiasi oggetto Python hashable.
import pandas as pd
temps = pd.Series([22.5, 19.0, 25.3, 17.8],
index=['Mon', 'Tue', 'Wed', 'Thu'])
print(temps)
# Mon 22.5
# Tue 19.0
# Wed 25.3
# Thu 17.8
# dtype: float64Creare una Series da un dizionario
Un dict Python può essere passato direttamente a pd.Series(). Le chiavi del dict diventano le etichette dell'indice e i valori diventano i dati. È uno dei modi più naturali per creare una Series quando i dati hanno già etichette significative. La Series risultante segue l'ordine di inserimento degli elementi nel dict (Python 3.7+).
import pandas as pd
stock = {'AAPL': 182.5, 'GOOG': 141.3, 'MSFT': 378.9}
s = pd.Series(stock)
print(s)
# AAPL 182.5
# GOOG 141.3
# MSFT 378.9
# dtype: float64Creare una Series da un array NumPy
Un ndarray NumPy può essere passato come argomento data. Il dtype della Series corrisponde al dtype dell'ndarray. I dati sottostanti sono memorizzati come array NumPy, quindi tutte le ufunc di NumPy funzionano direttamente sulle Series. Questo facilita la migrazione del codice NumPy esistente a Pandas senza riscrivere la logica di preparazione dei dati.
import pandas as pd
import numpy as np
arr = np.linspace(0, 1, 5)
s = pd.Series(arr, index=['a', 'b', 'c', 'd', 'e'])
print(s)
# a 0.00
# b 0.25
# c 0.50
# d 0.75
# e 1.00Gli attributi .index e .values
s.index restituisce l'oggetto Index contenente le etichette. s.values restituisce l'array NumPy sottostante dei valori. Entrambi sono essenziali per l'interoperabilità: può passare s.values a qualsiasi funzione NumPy e convertire il risultato nuovamente in una Series con l'indice originale. s.dtype restituisce il tipo di dati dei valori.
import pandas as pd
s = pd.Series([3, 1, 4], index=['x', 'y', 'z'])
print(s.index) # Index(['x', 'y', 'z'], dtype='object')
print(s.values) # [3 1 4]
print(s.dtype) # int64Nome della Series e nome dell'indice
Una Series può avere un attributo .name che descrive cosa rappresentano i valori, mentre il suo indice può avere un attributo .name che descrive cosa rappresentano le etichette. Questi nomi compaiono nei DataFrame quando una Series viene assegnata a una colonna e nelle etichette dei grafici. Li imposti con s.name = 'price' o al momento della creazione con name=.
import pandas as pd
s = pd.Series([1.2, 3.4, 5.6],
index=['a', 'b', 'c'],
name='measurement')
s.index.name = 'label'
print(s)
# label
# a 1.2
# b 3.4
# c 5.6
# Name: measurement, dtype: float64Creare una Series scalare
Passare un singolo valore scalare a pd.Series() insieme a un indice esplicito crea una Series in cui ogni elemento è uguale a quel valore scalare. È simile a np.full() di NumPy ed è utile per creare Series costanti di riferimento da sottrarre a una Series di dati reali o con cui confrontarla.
import pandas as pd
s = pd.Series(5, index=['a', 'b', 'c', 'd'])
print(s)
# a 5
# b 5
# c 5
# d 5
# dtype: int64Allineamento automatico degli indici
Una delle funzioni più potenti delle Series di Pandas è l'allineamento automatico degli indici. Quando somma due Series, Pandas le allinea in base alle rispettive etichette prima di calcolare il risultato. Se un'etichetta è presente in una Series ma non nell'altra, il risultato in corrispondenza di quell'etichetta è NaN. Questo previene i comuni errori silenziosi di disallineamento di una posizione nelle operazioni con gli array NumPy.
import pandas as pd
a = pd.Series([1, 2], index=['x', 'y'])
b = pd.Series([10, 20], index=['y', 'z'])
print(a + b)
# x NaN
# y 12.0
# z NaNControllare lunghezza e forma di una Series
len(s) restituisce il numero di elementi. s.shape restituisce una tupla (n,) coerente con le convenzioni di NumPy. s.size equivale a len(s). Usi questi controlli all'inizio di una pipeline per verificare che il caricamento dei dati abbia prodotto il numero di righe previsto prima di procedere con l'analisi.
import pandas as pd
s = pd.Series(range(10))
print(len(s)) # 10
print(s.shape) # (10,)
print(s.size) # 10
print(s.ndim) # 1Convertire una Series in altri tipi
Può convertire una Series nuovamente in una lista Python con s.tolist(), in un array NumPy con s.to_numpy() o s.values e in un dict con s.to_dict(). Queste conversioni sono utili per l'interoperabilità con librerie che non accettano oggetti Pandas e per serializzare i risultati in JSON o CSV.
import pandas as pd
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s.tolist()) # [10, 20, 30]
print(s.to_numpy()) # [10 20 30]
print(s.to_dict()) # {'a': 10, 'b': 20, 'c': 30}Series e colonna di un DataFrame
Una singola colonna di un DataFrame è una Series. Quando accede a df['col'], Pandas restituisce una Series con lo stesso indice del DataFrame. Al contrario, una Series con un name può essere inserita direttamente in un DataFrame come colonna. Comprendere questa relazione aiuta a passare agevolmente dalle operazioni sulle Series a quelle sui DataFrame e viceversa.
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
col = df['a'] # Series
print(type(col)) # <class 'pandas.core.series.Series'>
print(col.values) # [1 2 3]Verifica rapida
Verifichi la Sua comprensione della creazione delle Series di Pandas presentata in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: una Series è un array unidimensionale con etichette basato su un ndarray NumPy, può essere creata da liste, dict, array NumPy o scalari e l'allineamento degli indici gestisce automaticamente l'aritmetica basata sulle etichette tra due Series. Prossimo argomento: come accedere agli elementi di una Series per etichetta con .loc e per posizione con .iloc.
Domande Frequenti
La lezione «Creazione di una Series» è gratuita?
Sì — il testo completo di «Creazione di una 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 «Creazione di una Series»?
Costruisca una Series Pandas a partire da una lista Python, un dict e un array NumPy e ne analizzi gli attributi index e values. 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 1 di 4.
Quanto tempo richiede la lezione «Creazione di una 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