Come unire in modo efficiente più file CSV utilizzando Python

Unire più file CSV in uno solo è un’operazione che si presenta frequentemente nell’analisi dei dati e nel trattamento statistico. Se questa operazione viene eseguita manualmente, richiede molto tempo e può generare errori. Utilizzando la libreria pandas di Python, è possibile eseguire questa operazione in modo efficiente e preciso. In questo articolo, vedremo come unire in modo efficiente più file CSV utilizzando Python.

Indice

Librerie necessarie e come installarle

Per unire più file CSV in Python, è necessaria la libreria pandas. Pandas è uno strumento potente che offre ottime funzionalità per la manipolazione e l’analisi dei dati. In questa sezione, vedremo come installare pandas.

Installazione di pandas

Per installare pandas, utilizziamo il seguente comando. Questo comando viene eseguito tramite il sistema di gestione dei pacchetti di Python, pip.

pip install pandas

Altre librerie necessarie

Oltre a pandas, la libreria numpy è utile per il trattamento dei file CSV. Numpy è una libreria per i calcoli numerici e viene spesso utilizzata insieme a pandas. Anche numpy può essere installato tramite pip con il seguente comando.

pip install numpy

Con queste librerie, siamo pronti per unire i file CSV in modo efficiente. Nella prossima sezione, vedremo come preparare i dati.

Preparazione dei dati

Prima di unire i file CSV, è importante comprendere i dati che si stanno trattando. In questa sezione, descriveremo un esempio di file CSV e la sua struttura.

File CSV di esempio

In questo esempio, utilizziamo due file CSV: “sales_january.csv” e “sales_february.csv”. I dati contenuti in questi file vengono uniti.

sales_january.csv

Date,Product,Sales
2024-01-01,Product A,100
2024-01-02,Product B,150
2024-01-03,Product A,200

sales_february.csv

Date,Product,Sales
2024-02-01,Product A,120
2024-02-02,Product C,160
2024-02-03,Product B,180

Verifica della struttura dei dati

Questi file hanno tre colonne: data, nome del prodotto e vendite. È importante comprendere questa struttura prima di eseguire l’unione. Ogni file CSV contiene i dati delle vendite di diversi giorni per i vari prodotti.

Nella prossima sezione, vedremo come caricare questi file CSV utilizzando la libreria pandas.

Caricamento di file CSV di base con pandas

Con pandas, è possibile caricare facilmente file CSV. In questa sezione, vedremo come utilizzare pandas per caricare i file CSV in modo semplice.

Importazione di pandas

Per prima cosa, importiamo la libreria pandas. Solitamente, pandas viene importato con l’alias “pd”.

import pandas as pd

Caricamento del file CSV

Successivamente, possiamo caricare i file CSV utilizzando la funzione read_csv. Con read_csv, basta specificare il percorso del file per caricarlo come DataFrame in pandas.

# Caricamento dei dati di vendite di gennaio
january_sales = pd.read_csv('sales_january.csv')

# Caricamento dei dati di vendite di febbraio
february_sales = pd.read_csv('sales_february.csv')

Verifica dei dati

Per verificare i dati caricati, possiamo utilizzare il metodo head, che mostra le prime righe del DataFrame.

print(january_sales.head())
print(february_sales.head())

Se eseguiamo il codice sopra, vedremo il contenuto di ciascun DataFrame, confermando che i dati sono stati caricati correttamente.

Nella prossima sezione, vedremo come caricare più file CSV contemporaneamente e archiviarli in una lista.

Caricamento di più file CSV in una lista

Per caricare più file CSV contemporaneamente e gestirli in modo efficiente, possiamo memorizzare i file in una lista. Questo approccio rende la gestione di più file più semplice ed efficiente.

Creazione di una lista di percorsi dei file

Per prima cosa, creiamo una lista dei percorsi dei file CSV da caricare. Questo passo ci prepara a caricare più file contemporaneamente.

# Memorizzazione dei percorsi dei file CSV in una lista
csv_files = ['sales_january.csv', 'sales_february.csv']

Caricamento dei file CSV e archiviazione nella lista

Successivamente, carichiamo ogni file CSV e lo archiviamo in una lista di DataFrame. Usiamo un ciclo per processare ogni file uno per uno.

# Creazione di una lista per i DataFrame
data_frames = []

# Caricamento di ogni file CSV e memorizzazione nella lista
for file in csv_files:
    df = pd.read_csv(file)
    data_frames.append(df)

Verifica dei dati

Possiamo estrarre i DataFrame dalla lista e verificarli uno per uno per assicurarci che siano stati caricati correttamente.

for df in data_frames:
    print(df.head())

Con questo approccio, possiamo caricare ed elaborare più file CSV in modo efficiente. Nella prossima sezione, vedremo come unire questi file CSV utilizzando pandas.

Metodo di unione dei file CSV

Dopo aver caricato più file CSV, il passo successivo è unirli in un unico DataFrame. In questa sezione, vedremo i passaggi per unire più file CSV utilizzando pandas.

Concatenazione dei dati

Utilizzando la funzione concat di pandas, possiamo concatenare più DataFrame verticalmente, aggiungendo così le righe dei vari DataFrame per ottenere un’unica tabella.

# Concatenazione verticale di più DataFrame
merged_data = pd.concat(data_frames, ignore_index=True)

Spiegazione del codice

  • data_frames: La lista dei DataFrame che abbiamo creato in precedenza.
  • ignore_index=True: Questo parametro fa sì che vengano ignorati gli indici originali e vengano creati nuovi indici consecutivi.

Verifica dei dati uniti

Per verificare che l’unione sia stata completata correttamente, possiamo visualizzare le prime e le ultime righe del DataFrame risultante.

print(merged_data.head())
print(merged_data.tail())

Salvataggio dei dati

Per salvare i dati uniti in un nuovo file CSV, possiamo usare la funzione to_csv.

# Salvataggio dei dati uniti in un file CSV
merged_data.to_csv('merged_sales.csv', index=False)

Spiegazione del codice

  • 'merged_sales.csv': Il nome del file in cui salvare i dati.
  • index=False: Impedisce che la colonna degli indici venga inclusa nel file CSV.

Con questo approccio, possiamo unire più file CSV in un unico DataFrame e salvarlo come un nuovo file CSV. Nella prossima sezione, vedremo come unire i file CSV utilizzando una chiave comune.

Unione basata su chiave

Quando uniamo più file CSV, può essere utile farlo in base a una chiave comune. In questa sezione, vedremo come unire i file CSV utilizzando una chiave comune con pandas.

Dati di esempio per l’unione

In questo esempio, utilizziamo due file CSV: uno chiamato products.csv che contiene informazioni sui prodotti e uno chiamato sales.csv che contiene i dati di vendita. Utilizzeremo la colonna Product come chiave per l’unione.

products.csv

Product,Category
Product A,Electronics
Product B,Household
Product C,Clothing

sales.csv

Date,Product,Sales
2024-01-01,Product A,100
2024-01-02,Product B,150
2024-01-03,Product A,200
2024-02-01,Product A,120
2024-02-02,Product C,160
2024-02-03,Product B,180

Caricamento dei file CSV

Iniziamo caricando i due file CSV utilizzando pandas.

# Caricamento dei file CSV
products = pd.read_csv('products.csv')
sales = pd.read_csv('sales.csv')

Unione dei dati

Utilizziamo la funzione merge per unire i dati in base alla chiave Product.

# Unione dei dati
merged_data = pd.merge(sales, products, on='Product')

Spiegazione del codice

  • sales: DataFrame contenente i dati delle vendite.
  • products: DataFrame contenente i dati dei prodotti.
  • on='Product': Unisce i dati utilizzando la colonna Product come chiave.

Verifica dei dati uniti

Verifichiamo che i dati siano stati uniti correttamente visualizzando le prime righe del DataFrame risultante.

print(merged_data.head())

Salvataggio dei dati uniti

Infine, salviamo i dati uniti in un nuovo file CSV.

# Salvataggio dei dati uniti in un file CSV
merged_data.to_csv('merged_sales_with_categories.csv', index=False)

Questo approccio ci consente di unire facilmente i file CSV utilizzando una chiave comune. Nella prossima sezione, esploreremo come verificare e salvare i dati uniti.

Verifica e salvataggio dei dati uniti

Dopo aver unito i file CSV, è importante verificare che i dati siano stati correttamente uniti e, se necessario, pulire i dati. In questa sezione, vedremo come verificare i dati uniti e come salvarli in un nuovo file CSV.

Verifica dei dati uniti

Per verificare che i dati siano stati uniti correttamente, visualizziamo le prime e le ultime righe del DataFrame, e possiamo anche ottenere statistiche descrittive per avere una panoramica generale dei dati.

# Visualizzazione delle prime righe
print(merged_data.head())

# Visualizzazione delle ultime righe
print(merged_data.tail())

# Statistiche descrittive
print(merged_data.describe())

Spiegazione del codice

  • head(): Visualizza le prime righe dei dati.
  • tail(): Visualizza le ultime righe dei dati.
  • describe(): Mostra statistiche descrittive dei dati (media, deviazione standard, valori minimi e massimi, ecc.).

Pulizia dei dati

Se i dati uniti contengono errori o valori mancanti, è necessario eseguire una pulizia. In questo esempio, controlliamo e trattiamo i valori mancanti.

# Verifica dei valori mancanti
print(merged_data.isnull().sum())

# Rimozione dei valori mancanti
cleaned_data = merged_data.dropna()

# Sostituzione dei valori mancanti con valori specifici
# cleaned_data = merged_data.fillna({'Sales': 0})

Spiegazione del codice

  • isnull().sum(): Controlla la quantità di valori mancanti in ogni colonna.
  • dropna(): Rimuove le righe contenenti valori mancanti.
  • fillna(): Sostituisce i valori mancanti con un valore specifico.

Salvataggio dei dati

Infine, salviamo i dati puliti in un nuovo file CSV.

# Salvataggio dei dati puliti in un file CSV
cleaned_data.to_csv('cleaned_merged_sales.csv', index=False)

Spiegazione del codice

  • 'cleaned_merged_sales.csv': Il nome del file in cui salvare i dati puliti.
  • index=False: Non include la colonna degli indici nel file CSV.

Seguendo questa procedura, possiamo verificare, pulire e salvare i dati uniti in un nuovo file CSV. Nella prossima sezione, esploreremo come unire file CSV con strutture di dati diverse.

Esempi avanzati: Unione di file CSV con strutture di dati diverse

Quando uniamo file CSV con strutture di dati diverse, ci sono alcune considerazioni e tecniche particolari da tenere in mente. In questa sezione, vedremo come unire file CSV con strutture diverse e come affrontare le problematiche comuni.

Dati di esempio

In questo esempio, uniremo due file CSV con strutture di dati diverse: uno contenente le vendite e l’altro contenente l’inventario.

sales.csv

Date,Product,Sales
2024-01-01,Product A,100
2024-01-02,Product B,150
2024-01-03,Product A,200

inventory.csv

Product,Stock,Warehouse
Product A,50,Warehouse 1
Product B,30,Warehouse 2
Product C,20,Warehouse 1

Unione basata su una chiave comune

Per unire questi file CSV, utilizziamo la colonna Product come chiave comune.

# Caricamento dei file CSV
sales = pd.read_csv('sales.csv')
inventory = pd.read_csv('inventory.csv')

# Unione dei dati
merged_data = pd.merge(sales, inventory, on='Product', how='left')

Spiegazione del codice

  • how='left': Questo parametro indica che si sta facendo un’operazione di join esterno a sinistra. Ciò significa che tutte le righe del DataFrame delle vendite verranno mantenute e verranno aggiunti solo i dati corrispondenti dell’inventario.

Gestione dei valori mancanti

Quando uniamo file CSV con strutture di dati diverse, potrebbe esserci la possibilità di avere valori mancanti. È importante gestirli correttamente.

# Verifica dei valori mancanti
print(merged_data.isnull().sum())

# Rimozione dei valori mancanti
cleaned_data = merged_data.dropna()

# Sostituzione dei valori mancanti con valori specifici
# cleaned_data = merged_data.fillna({'Stock': 0, 'Warehouse': 'Unknown'})

Spiegazione del codice

  • dropna(): Rimuove le righe contenenti valori mancanti.
  • fillna(): Sostituisce i valori mancanti con valori specifici.

Salvataggio dei dati

Infine, salviamo i dati uniti e puliti in un nuovo file CSV.

# Salvataggio dei dati uniti in un file CSV
cleaned_data.to_csv('merged_sales_inventory.csv', index=False)

Spiegazione del codice

  • 'merged_sales_inventory.csv': Il nome del file in cui salvare i dati.
  • index=False: Impedisce che la colonna degli indici venga inclusa nel file CSV.

Con questa tecnica, possiamo unire file CSV con strutture di dati diverse e creare un dataset uniforme. Nella prossima sezione, esploreremo degli esercizi pratici per mettere in pratica quanto appreso.

Esercizi

In questa sezione, proporremo alcuni esercizi pratici per mettere in pratica quanto appreso riguardo il caricamento, l’unione, la pulizia e il salvataggio dei file CSV.

Esercizio 1: Caricamento e unione di file CSV di base

Carica i seguenti file CSV utilizzando pandas e uniscili.

products.csv

Product,Price
Product A,100
Product B,150
Product C,200

sales.csv

Date,Product,Sales
2024-01-01,Product A,10
2024-01-02,Product B,15
2024-01-03,Product C,20

Procedura:

  1. Carica i file CSV.
  2. Unisci i dati utilizzando la colonna Product come chiave.
  3. Verifica i dati uniti.
  4. Salva i dati uniti in un nuovo file CSV.

Esercizio 2: Unione di file CSV con strutture diverse

Unisci i seguenti file CSV che hanno strutture di dati diverse.

customers.csv

CustomerID,Name,Location
1,John Doe,New York
2,Jane Smith,Los Angeles
3,Emily Davis,Chicago

orders.csv

OrderID,CustomerID,Product,Quantity
1001,1,Product A,1
1002,2,Product B,2
1003,1,Product C,1
1004,3,Product A,3

Procedura:

  1. Carica i file CSV.
  2. Unisci i dati utilizzando la colonna CustomerID come chiave.
  3. Gestisci i valori mancanti, se presenti.
  4. Salva i dati uniti in un nuovo file CSV.

Esercizio 3: Pulizia dei dati e salvataggio

Carica il file CSV, gestisci i valori mancanti e salva i dati puliti.

sales_data.csv

Date,Product,Sales
2024-01-01,Product A,100
2024-01-02,Product B,
2024-01-03,Product A,200
2024-02-01,Product A,120
2024-02-02,,160
2024-02-03,Product B,180

Procedura:

  1. Carica il file CSV.
  2. Controlla i valori mancanti.
  3. Gestisci i valori mancanti (rimuovendo o sostituendo).
  4. Salva i dati puliti in un nuovo file CSV.

Completando questi esercizi, potrai mettere in pratica le abilità necessarie per gestire file CSV nella vita reale. Nella prossima sezione, faremo un riassunto di quanto appreso.

Riepilogo

In questo articolo, abbiamo esplorato come unire più file CSV utilizzando Python. Ecco i punti principali:

Punti principali

  1. Introduzione alla libreria pandas: Pandas rende facile caricare, unire e pulire file CSV.
  2. Caricamento di file CSV: Usiamo la funzione read_csv per caricare file CSV come DataFrame in pandas.
  3. Gestire più file CSV con una lista: Abbiamo visto come gestire più file CSV utilizzando una lista.
  4. Unione dei dati: Abbiamo imparato a usare le funzioni concat e merge per unire i file CSV in un unico DataFrame.
  5. Unione basata su chiave: Abbiamo unito i file CSV usando una chiave comune.
  6. Pulizia e salvataggio dei dati: Abbiamo visto come pulire i dati e salvarli in un nuovo file CSV.
  7. Esempi pratici ed esercizi: Abbiamo offerto esercizi per praticare l’unione di file CSV con strutture diverse.

Con queste competenze, sarai in grado di gestire file CSV in modo efficiente e utilizzarli per analisi e trattamento dei dati. Utilizza questo articolo come riferimento per affrontare i tuoi progetti di trattamento dati.

Indice