Articolo originale: https://www.freecodecamp.org/news/how-to-combine-multiple-csv-files-with-8-lines-of-code-265183e0854/

Perché ne hai bisogno?

Fare copia&incolla va bene se non hai troppi file con cui lavorare.

Ma immagina di avere più di cento file da concatenare... Vuoi davvero farlo manualmente? Farlo ripetutamente è tediante ed è facile commettere errori.

1*uRBGXWKaeRjw6Ck2NrhcIA

Se tutti i file hanno la stessa struttura (stesse intestazioni e numero di colonne), puoi usare questo piccolo script in Python per fare il lavoro.

Step 1: Importa i pacchetti e imposta la cartella di lavoro

Cambia "/mydir" con la cartella che vuoi che sia la tua cartella di lavoro.

import os
import glob
import pandas as pd
os.chdir("/mydir")

Step 2: Usa glob per verificare il pattern 'csv'

Verifica il pattern ('csv') e salva la lista dei nomi dei file nella variabile all_filenames. Puoi andare a questo link per imparare di più sulla verifica delle espressioni regolari.

extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

Step 3: Combina tutti i file nella lista ed esporta come CSV

Usa pandas per concatenare tutti i file nella lista ed esportare come CSV. Il file di output si chiama "combined_csv.csv" e viene generato nella tua cartella di lavoro.

#combine all files in the list
combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ])
#export to csv
combined_csv.to_csv( "combined_csv.csv", index=False, encoding='utf-8-sig')

Aggiungiamo encoding = 'utf-8-sig' per evitare problemi nel caso di esportazione in altre lingue con caratteri non inglesi.

E... fatto!

Questo articolo è stato ispirato da un mio problema quotidiano, e la struttura del codice viene da una discussione su stackoverflow. Lo script completo per questo articolo è documentato su GitHub.

Grazie per aver letto. Per favore, provaci, divertiti, e fammi sapere cosa ne pensi!