-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Pandas


Pandas è una libreria, per la manipolazione e l'analisi dei dati, lavorare con dati e tabelle.

Pandas una libreria Python

Pandas è una libreria Python potente e flessibile per la manipolazione e l'analisi dei dati.
È particolarmente utile per lavorare con dati strutturati, come tabelle, e offre vari strumenti per la lettura, scrittura e manipolazione dei dati.

Creazione di un DataFrame


Un DataFrame è una struttura dati bidimensionale con etichette sugli assi (righe e colonne).
Può essere paragonato a un foglio di calcolo o una tabella di un database. Ogni colonna in un DataFrame può contenere diversi tipi di dati.

import pandas as pd

# Creare un DataFrame da un dizionario
data = {
    'Nome': ['Alice', 'Bob', 'Charlie'],
    'Età': [25, 30, 35],
    'Città': ['Roma', 'Milano', 'Napoli']
}
df = pd.DataFrame(data)

Lettura di un DataFrame

Pandas supporta la lettura di dati da diversi formati di file come CSV, Excel, SQL, JSON, e molti altri.

df = pd.read_csv('file.csv')

Indici e Posizioni


Ogni DataFrame ha un indice, che è un'etichetta univoca per ogni riga. L'indice può essere una colonna esistente o un valore generato automaticamente.

df.set_index('Nome', inplace=True)

Reset dell'indice



df.reset_index(inplace=True)

Accedere ai dati con l'indice



# Accedere alla riga con l'indice 'Alice'
df.loc['Alice']

Serie: Righe e Colonne di un DataFrame


Una Serie è una struttura dati unidimensionale con etichette sugli assi. Ogni colonna di un DataFrame è una Serie.

serie = pd.Series([1, 2, 3], index=['a', 'b', 'c'])

Accesso a righe e colonne



# Accedere a una colonna come Serie
colonna_eta = df['Età']

# Accedere a una riga con il metodo loc (indice) o iloc (posizione)
riga_alice = df.loc['Alice']
riga_posizione_0 = df.iloc[0]

Filtrare i dati



# Filtrare le righe dove l'età è maggiore di 30
df_filtro = df[df['Età'] > 30]

Aggiungere una nuova colonna


# Aggiungere una nuova colonna con valori calcolati
df['Anno di Nascita'] = 2023 - df['Età']

Rimuovere una colonna



# Rimuovere le colonne 'Età' e 'Città'
df = df.drop(columns=['Età', 'Città'])
print(df)

Raggruppare e aggregare i dati



# Raggruppare per colonna e calcolare la media
df_gruppo = df.groupby('Città').mean()

Esempio Completo



import pandas as pd

# Creare un DataFrame
data = {
    'Nome': ['Alice', 'Bob', 'Charlie'],
    'Età': [25, 30, 35],
    'Città': ['Roma', 'Milano', 'Napoli']
}
df = pd.DataFrame(data)

# Impostare un indice
df.set_index('Nome', inplace=True)

# Leggere i dati da un file CSV
df_csv = pd.read_csv('file.csv')

# Accedere ai dati con l'indice
riga_bob = df.loc['Bob']

# Aggiungere una nuova colonna
df['Anno di Nascita'] = 2023 - df['Età']

# Filtrare i dati
df_filtrato = df[df['Età'] > 30]

# Raggruppare e aggregare i dati
df_gruppo = df.groupby('Città').mean()

# Visualizzare il DataFrame risultante
print(df)
print(df_filtrato)
print(df_gruppo)