Definire variabili categoriali
Le series
Le principali strutture dati usate in Pandas sono le serie e il dataframe:
Series. Una struttura monodimensionale. Ogni elemento della serie ha un indice a partire da zero. Contengono scalari
Dataframe. Una struttura a due o più dimensioni. Ogni elemento della serie ha un indice (a partire da zero) e due o più etichette che indicano i campi delle colonne. Contengono series.
Series
- Array monodimensionale etichettato
- Le label relative alle righe prendono il nome di indici
- Può essere creata usando:
s = pd.Series(data, index=index) - data può essere un dizionario, un ndarray o uno scalare
- index è una lista di etichette per le varie righe
Esempi
import numpy as nps1 = pd.Series(np.random.randn(4), index=["a", "b","c", "d"])s2 = pd.Series(np.random.randn(4))
Series possono essere viste in diversi modi:
- Series come array NumPy (ndarray)
- Series come dizionario Python
Series come ndarray
Essendo basate su NumPy, le Series possono essere usate come argomento di molte NumPy functions.
- Le operazioni come lo slicing effettuano anche lo slicing sugli indici
- Hanno la proprietà dtype (come NumPy)
- Possibile accedere all’ndarray con la proprietà array
- Possono essere convertite in NumPy con
to_numpy()
Esempi:
s[0]
s[:2]
np.exp(s)
Series come dizionario
E’ possibile accedere agli elementi della serie usando il valore dell’indice:
s = pd.Series(np.random.randn(5), index=["a", "b", "c", "d", "e"])
s["a"]
"e" in s
s.get("e")
Vettorizzazione su Series
- Le stesse cose valide per NumPy sono valide anche per le Series
- Tuttavia le Series operano componente per componente in base al valore dell’indice
- Se un valore di un indice non è trovato in una serie o nell’altra il risultato sarà NaN
Esempi:
import numpy as npimport pandas as pds1 = pd.Series(np.random.randn(4), index=["a", "b","c", "d"])s1Output:
c -2.246495
d -0.671629
dtype: float64
import numpy as npimport pandas as pds1 = pd.Series(np.random.randn(4), index=["a", "b","c", "d"])s1 +s1b -0.075577
c -4.492989
d -1.343258
dtype: float64
import numpy as npimport pandas as pds1 = pd.Series(np.random.randn(4), index=["a", "b","c", "d"])print(s1)s1[1:] + s1[:-1]a -3.217150 b 0.302836 c -1.045319 d 0.147652 dtype: float64
a NaN
b 0.605673
c -2.090638
d NaN
dtype: float64
[elementor-template id=”12586″]
[no_toc]
(194)
Altri articoli nella categoria "Lezioni di Informatica"
- Break-Even Point nel Franchising: Calcolo Avanzato, Automazione e Royalty (con Modelli in Python)
- Regressione lineare: esercizi progressivi dai minimi quadrati alla regressione multipla
- Microeconomia applicata: choke price, domanda esponenziale, segmentazione e prezzo ottimale – Parte 2
- Microeconomia applicata: choke price, prezzo di riserva massimo e prezzo ottimale
- Quanti Centri Ha una Figura Geometrica? Dal Baricentro al Pentagramma
- Microeconomia Computazionale: Come la Domanda di Mercato Emerge dai Comportamenti Individuali
- Legge di Benford e Data Quality nel Marketing: Guida, Formule ed Esercizi Python
- Microeconomia dell’AI: 6 esercizi matematici su costi, pricing, domanda ed elasticità
- Equazioni trascendenti: come risolverle con Python, dal punto fisso a Newton e Brent
- Equazioni Omogenee Esponenziali: Guida Pratica con Esercizi Svolti e Applicazioni