0Pricing
Pandas & NumPy Academy · Lezione

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: int64

Creare 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: float64

Creare 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: float64

Creare 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.00

Gli 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)   # int64

Nome 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: float64

Creare 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: int64

Allineamento 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     NaN

Controllare 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)     # 1

Convertire 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

  1. Creazione di una Series
  2. Accesso basato su etichette e posizioni
  3. Operazioni vettorializzate sulle Series
  4. Metodi utili delle Series
← Torna a Pandas & NumPy Academy