🐼 Pandas DataFrame: la struttura dati che ha cambiato l’analisi dei dati in Python

  

Nel panorama della programmazione moderna, poche librerie hanno rivoluzionato il lavoro degli sviluppatori quanto pandas. Se ti occupi di analisi dati, machine learning, automazione o semplicemente manipolazione di informazioni strutturate, è quasi impossibile non imbattersi nel suo concetto fondamentale: il DataFrame.

In questo articolo ti spiego cos’è, come funziona e perché è diventato uno strumento indispensabile nel mondo dell’informatica.

🔗 Ti piace Techelopment? Dai un'occhiata al sito per tutti i dettagli!

📌 Cos’è un DataFrame?

Un DataFrame è una struttura dati bidimensionale, simile a un foglio Excel o a una tabella SQL. Pensalo come una matrice di dati organizzata in righe e colonne, dove ogni colonna può contenere un tipo di dato diverso (stringhe, numeri, date, booleani, ecc.). 

 Nel mondo di pandas, un DataFrame è potente perché combina: 

  • la facilità d’uso delle tabelle
  • la velocità delle strutture dati C ottimizzate
  • la flessibilità di Python. 
Ecco un esempio di DataFrame creato in pochi secondi:

import pandas as pd

df = pd.DataFrame({
    "Name": ["Anna", "Mark", "Luke"],
    "Age": [23, 31, 28],
    "City": ["Rome", "Milan", "Turin"]
})

# Display the DataFrame in the console
print(df)

Output:

    Name   Age   City
0   Anna   23    Rome
1   Mark   31    Milan
2   Luke   28    Turin

✅ Le righe possono essere nominate?

Sì — le righe in un DataFrame pandas possono avere etichette: si tratta dell'index. Di default l'indice è numerico (0, 1, 2, ...), ma puoi impostarlo e manipolarlo come preferisci. Qui sotto trovi alcuni esempi pratici.

1. Impostare nomi personalizzati alla creazione

import pandas as pd

df = pd.DataFrame(
    {
        "Name": ["Anna", "Mark", "Luke"],
        "Age": [23, 31, 28],
    },
    index=["row_1", "row_2", "row_3"]
)

# Display the DataFrame in the console
print(df)

Output:

         Name  Age
row_1    Anna  23
row_2    Mark  31
row_3    Luke  28

2. Rinominare le righe dopo la creazione

# Replace the whole index
df.index = ["a", "b", "c"]
print(df)

# Or rename selected index labels
df.rename(index={"a": "first", "b": "second"}, inplace=True)
print(df)

Output dopo la sostituzione completa:

       Name  Age
a      Anna  23
b      Mark  31
c      Luke  28

Output dopo rename:

         Name  Age
first    Anna  23
second   Mark  31
c        Luke  28

3. Dare un nome all’indice stesso

# Give a name to the index axis
df.index.name = "ID"
print(df)

Output:

           
ID         Name  Age 
first      Anna  23
second     Mark  31
c          Luke  28

4. Impostare l'indice da una colonna (es. da CSV/Excel/SQL)

# Suppose you read a CSV that has an 'id' column you want to use as index
# df = pd.read_csv("data.csv")
# Or set index from existing DataFrame column:
df2 = pd.DataFrame({
    "id": ["u1", "u2", "u3"],
    "Name": ["Alice", "Bob", "Carol"],
    "Age": [29, 34, 41]
})
df2.set_index("id", inplace=True)
print(df2)

Output:

      
id    Name  Age
u1    Alice 29
u2    Bob   34
u3    Carol 41

5. Multi-index (indici gerarchici)

Se vuoi etichette su più livelli (utile per dati gerarchici), puoi creare un MultiIndex:

arrays = [
    ["group1", "group1", "group2", "group2"],
    ["a", "b", "a", "b"]
]
index = pd.MultiIndex.from_arrays(arrays, names=("Group", "Label"))
df_multi = pd.DataFrame(
    {"Value": [10, 20, 30, 40]},
    index=index
)
print(df_multi)

Output:

                
Group  Label     Value
group1 a         10
       b         20
group2 a         30
       b         40

In sintesi: puoi impostare le righe alla creazione, sostituirle, rinominarle, derivarle da colonne esistenti e persino usare indici gerarchici.


🔍 Perché è così importante?

I DataFrame sono diventati lo standard per la manipolazione dei dati in Python grazie a:

✔ Facilità di manipolazione

Filtrare righe, selezionare colonne o ordinare dati richiede una sola riga di codice.
filtered_df = df[df["Age"] > 25]
print(filtered_df)

Output:

   Name   Age   City
1  Mark   31    Milan
2  Luke   28    Turin

✔ Operazioni veloci e ottimizzate

Sotto il cofano, pandas usa strutture costruite su NumPy, garantendo efficienza anche con dataset molto grandi.

✔ Supporto a formati eterogenei

Un DataFrame può leggere e scrivere facilmente dati da:

📄 1. CSV

Lettura:

df = pd.read_csv("data.csv")
print(df)

Scrittura:

df.to_csv("output.csv", index=False)

📊 2. Excel

Lettura:

df = pd.read_excel("data.xlsx")
print(df)

Scrittura:

df.to_excel("output.xlsx", index=False)

🧱 3. JSON

Lettura:

df = pd.read_json("data.json")
print(df)

Scrittura:

df.to_json("output.json", orient="records", indent=2)

🗄️ 4. SQL

from sqlalchemy import create_engine
import pandas as pd

engine = create_engine("sqlite:///mydb.sqlite")

# Read a table from SQL database
df = pd.read_sql("SELECT * FROM users", engine)
print(df)

# Write to SQL
df.to_sql("users_output", engine, index=False, if_exists="replace")

Esempio Output:

   id   name   age    city
0   1   Anna    23    Rome
1   2   Mark    31    Milan
2   3   Luke    28    Turin

✔ Integrazione perfetta con il machine learning

La maggior parte delle librerie di ML in Python (come scikit-learn) usa i DataFrame come input ed output.

🔧 Le operazioni più comuni

1. Selezione di colonne

print(df["Name"])

2. Filtraggio

print(df[df["City"] == "Rome"])

3. Ordinamento

print(df.sort_values("Age"))

4. Aggiunta di nuove colonne

df["BirthYear"] = 2025 - df["Age"]
print(df)

5. Raggruppamento (Group by)

print(df.groupby("City")["Age"].mean())

📈 Quando usare i DataFrame?

I DataFrame brillano in tutti i contesti in cui si manipolano dati strutturati:

  • analisi statistiche

  • data cleaning

  • ETL (Extract, Transform, Load)

  • report automatici

  • machine learning

  • prototipazione rapida di pipeline dati

Che tu sia uno sviluppatore, un analista, un data scientist o un semplice appassionato, i DataFrame ti permettono di trasformare dati grezzi in informazioni utili — in modo rapido ed elegante.


🚀 Conclusione

Il DataFrame di pandas non è solo una struttura dati: è un vero alleato nell’analisi e manipolazione dei dati

Il suo mix di semplicità, velocità e versatilità lo rende uno standard irrinunciabile nel mondo della data science e non solo.



Follow me #techelopment

Official site: www.techelopment.it
facebook: Techelopment
instagram: @techelopment
X: techelopment
Bluesky: @techelopment
telegram: @techelopment_channel
whatsapp: Techelopment
youtube: @techelopment