Argomenti della lezione
  1. 1. Tabella
  2. 2. Riga
  3. 3. Colonna
  4. 4. Cella
  5. 5. Valore atomico
  6. 6. Grana
  7. 7. Dati ordinati
  8. Prova con una tabella pubblica
  9. Verifica la comprensione
  10. Risposte

Scarica il notebook

01 · Che cos’è una tabella?

Al termine saprai individuare una riga, una colonna e una cella, spiegare che cosa rappresenta una riga e riconoscere una struttura che nasconde una variabile.

Esegui il notebook dall’inizio alla fine in una nuova sessione Python su Kaggle. Servono pandas, scikit-learn, PySpark e una versione compatibile di Java. Se PySpark manca, installalo con %pip install pyspark in una cella di preparazione con Internet abilitato. I dati della lezione sono già disponibili.

1. Tabella

Una tabella organizza osservazioni correlate in righe e colonne. Useremo un piccolo registro delle bevande ordinate in un bar.

La cella successiva importa pandas e PySpark. Una SparkSession è il punto di accesso alle tabelle Spark. getOrCreate() avvia una sessione o ne riusa una già attiva. createDataFrame() converte la nostra piccola tabella pandas in un DataFrame Spark. show(3) stampa fino a tre righe. Ritroverai questi strumenti nei notebook 2 e 3.

import pandas as pd
from pyspark.sql import SparkSession

spark = SparkSession.builder.master("local[2]").appName("01-what-is-a-table").getOrCreate()

cafe_pandas = pd.DataFrame(
    [
        (101, "tea", 2),
        (101, "coffee", 1),
        (102, "tea", 1),
    ],
    columns=["order_id", "drink", "quantity"],
)
cafe = spark.createDataFrame(cafe_pandas)
cafe.show(3)

2. Riga

Leggi una riga da sinistra a destra per vedere un’osservazione. La riga con 101, tea e 2 registra due tè nell’ordine 101.

3. Colonna

Leggi una colonna dall’alto in basso per vedere i valori della stessa variabile. La colonna quantity indica quante unità della bevanda sono state ordinate in ogni riga.

4. Cella

Una cella si trova all’incrocio tra una riga e una colonna. All’incrocio tra la riga del caffè dell’ordine 101 e la colonna quantity trovi il valore 1.

5. Valore atomico

Un valore atomico è un singolo valore rispetto alla domanda a cui risponde la colonna. In questo esempio ogni cella di drink indica una bevanda. Una cella con tea, coffee raggrupperebbe due bevande e renderebbe ambiguo come associare una quantità a ciascuna.

6. Grana

La grana indica che cosa rappresenta una riga. In questa tabella ogni riga rappresenta una riga d’ordine per una bevanda. L’ordine 101 compare due volte perché ha due righe. In tutto ci sono tre righe d’ordine e due ordini.

7. Dati ordinati

Nei dati ordinati (tidy data), ogni variabile ha una propria colonna, ogni osservazione ha una propria riga e ogni cella contiene un valore. La tabella del bar è ordinata alla grana della riga d’ordine. Una struttura con colonne tea_qty e coffee_qty codifica la variabile bevanda nelle intestazioni. Per tornare alla struttura per righe d’ordine, metti il nome della bevanda in drink e il numero di unità in quantity, con una riga per ogni riga d’ordine.

Prova con una tabella pubblica

Scikit-learn include una copia del dataset pubblico Iris. load_iris(as_frame=True).frame lo carica come tabella pandas. Convertilo in Spark e osserva una piccola anteprima.

from sklearn.datasets import load_iris

iris_pandas = load_iris(as_frame=True).frame
iris = spark.createDataFrame(iris_pandas)
iris.show(3)

Verifica la comprensione

  1. Quale colonna della tabella del bar indica il numero di unità in una riga?
  2. Perché l’ordine 101 può comparire due volte?
  3. Qual è la grana della tabella Iris? Che cosa rappresenta una cella di una colonna di misure?

Risposte

  1. quantity.
  2. Ogni riga rappresenta una riga d’ordine. L’ordine 101 ha una riga per il tè e una per il caffè.
  3. Ogni riga rappresenta un esemplare di iris. Una cella di misura contiene una misura di quell’esemplare in centimetri.