Se stai muovendo i primi passi con pandas, è probabile che tu abbia già incontrato questi due termini: Series e DataFrame.
In questa micro-lezione vedremo da vicino quali sono le differenze tra i due, perché Series e DataFrame sono le basi su cui si costruisce qualsiasi analisi con Python.
Il programma della micro-lezione
Cosa è una Series
Una Series è una sequenza monodimensionale di valori, con un indice associato a ciascuno di essi. Puoi pensarla come una singola colonna di un foglio Excel.
Per prima cosa, importiamo pandas:
import pandas as pdE adesso creiamo una Series:
vendite = pd.Series([150, 230, 180, 95, 310])Ed ecco come appare:
indice | vendite |
|---|---|
0 | 150 |
1 | 230 |
2 | 180 |
3 | 95 |
4 | 310 |
L'indice viene creato automaticamente da pandas, partendo da 0. Puoi anche personalizzarlo:
vendite = pd.Series(
[150, 230, 180, 95, 310],
index=['lun', 'mar', 'mer', 'gio', 'ven']
)indice | vendite |
|---|---|
lun | 150 |
mar | 230 |
mer | 180 |
gio | 95 |
ven | 310 |
Cosa è un DataFrame
Un DataFrame è una struttura bidimensionale: ha righe e colonne, proprio come una tabella. Puoi pensarlo come un foglio Excel intero, o come il risultato di una query SQL.
Ecco come crearne uno:
df = pd.DataFrame({
'giorno': ['lun', 'mar', 'mer', 'gio', 'ven'],
'vendite': [150, 230, 180, 95, 310],
'resi': [5, 12, 8, 3, 20]
})Ed ecco il nostro DataFrame:
indice | giorno | vendite | resi |
|---|---|---|---|
0 | lun | 150 | 5 |
1 | mar | 230 | 12 |
2 | mer | 180 | 8 |
3 | gio | 95 | 3 |
4 | ven | 310 | 20 |
Nota bene!
Anche in quest caso, una colonna che funge da indice (partendo da 0) è stata aggiunta in automatico al dataframe
Il legame tra Series e DataFrame
La cosa essenziale da tenere a mente è che ogni colonna di un DataFrame è una Series.
Quindi, quando selezioni una singola colonna da un DataFrame, ottieni una Series:
df['vendite']
Puoi verificarlo con type() :
type(df['vendite'])E questo sarà l’output del codice:
pandas.core.series.Series
Se invece selezioni più colonne quando usi type() , avrai un oggetto bidimensionale:
type(df[['vendite','resi']] )E in effetti, il risultato di type() sarà questo:
pandas.core.frame.DataFrameQuando usare l'una o l'altro
In pratica, lavorerai quasi sempre con i DataFrame: sono la struttura principale di pandas. Le Series compaiono naturalmente ogni volta che isoli una colonna o calcoli un risultato su una dimensione sola.
È utile sapere con quale delle due stai lavorando perché alcuni metodi si comportano diversamente su una Series rispetto a un DataFrame. Quando hai dubbi, usa sempre type() per verificare.
Alla prossima micro-lezione 👋
Se vuoi imparare la data analysis con micro-lezioni che vanno dritto al sodo, iscriviti alla newsletter:
