Come combinare file CSV in Python

Come Combinare File Csv In Python



A volte il set di dati specificato non si trova in un singolo file CSV. Sono tutti su diversi fogli Excel. Sai già che è preferibile eseguire tutte le attività computazionali o di pre-elaborazione su un singolo set di dati anziché su più set di dati. Riduce o fa risparmiare il tempo che dobbiamo dedicare alle attività di pre-elaborazione. Inoltre, come analista di dati o scienziato di dati, potresti trovarti spesso sovraccaricato da numerosi file CSV che devono essere uniti prima ancora di iniziare l'analisi o l'esame dei dati disponibili. D'altra parte, non è sempre possibile che tutti i file siano ottenuti dall'unica o dalla stessa origine dati e abbiano gli stessi nomi di colonna/variabili e la stessa struttura dei dati. Questo post ti insegnerà a combinare due o più file CSV con una struttura di colonne simile o diversa.

Perché combinare file CSV?

Un set di dati può essere una raccolta o un gruppo di valori o numeri relativi a un argomento specifico. Ad esempio, i risultati dei test di ogni studente in una determinata classe sono un esempio di set di dati. A causa delle dimensioni dei set di dati di grandi dimensioni, vengono spesso archiviati in file CSV separati per categorie diverse. Ad esempio, se ci viene richiesto di esaminare un paziente per una malattia specifica, dobbiamo considerare ogni componente, inclusi sesso, cartella clinica, età, gravità della malattia, ecc. Di conseguenza, è necessario combinare i dati CSV per esaminare vari fattori predittivi aspetti. Inoltre, è meglio lavorare e gestire un singolo set di dati piuttosto che diversi set di dati durante l'esecuzione delle attività di calcolo o pre-elaborazione. Risparmia memoria e altre risorse computazionali







Come combinare file CSV in Python?

Esistono diversi modi e metodi per combinare due o più file CSV in Python. Nella sezione seguente, utilizzeremo le funzioni append(), concat() e merge(), ecc., per combinare i file CSV in pandas dataframe, quindi i dataframe verranno convertiti in un singolo file CSV. Insegneremo come combinare più file CSV con una struttura di colonne simile o variabile.



Metodo n. 1: combinazione di CSV con strutture o colonne simili

La nostra attuale directory di lavoro ha due file CSV, 'test1' e 'test2'.



Esempio n. 1: utilizzo della funzione append()

Entrambi i file CSV hanno la stessa struttura. La funzione glob() verrà utilizzata in questo metodo per elencare solo i file CSV nella directory di lavoro. Quindi useremo 'pandas.DataFrame.append()' per leggere i nostri file CSV (con una struttura di tabella comune).





Produzione:



Utilizzando la funzione append, abbiamo accodato o aggiunto ogni riga di dati da test2.csv sotto le righe di dati di test1.csv, poiché si può vedere che tutte le righe di dati del file sono state combinate. Per convertire questo dataframe in CSV, possiamo usare la funzione to_csv().

Questo creerà un file CSV combinato di file CSV di 'test1' e 'test2' nella nostra directory di lavoro con il nome specificato, ad esempio, merged.csv.

Esempio n. 2: utilizzo della funzione concat()

Importeremo prima il modulo panda. Il metodo map leggerà ogni file CSV che abbiamo passato utilizzando pd.read_csv(). Questi file mappati (file CSV) verranno quindi combinati lungo l'asse delle righe per impostazione predefinita utilizzando la funzione pd.concat(). Se vogliamo combinare i file CSV orizzontalmente, possiamo passare axis=1. Specificando l'indice ignore = True, vengono creati anche valori di indice continui per il frame di dati combinato.

Il pd.read_csv() viene passato all'interno della funzione concat() per leggere i file CSV nel dataframe pandas dopo la concatenazione.

Abbiamo ottenuto un dataframe con i dati combinati di tutti i file CSV nella directory di lavoro. Ora, convertiamolo in un file CSV.

Il nostro CSV combinato viene creato nella directory corrente.

Metodo n. 2: combinazione di CSV con strutture o colonne diverse

Abbiamo discusso della combinazione di file CSV con le stesse colonne e struttura nel primo metodo. In questo metodo, combineremo i file CSV con diverse colonne e strutture.

Esempio n. 1: utilizzo della funzione merge()

La funzione 'pandas.merge()' nel modulo panda può combinare due file CSV. L'unione si riferisce semplicemente alla combinazione di due set di dati in un unico set di dati basato su colonne o attributi condivisi.

Possiamo unire i dataframe in quattro diversi modi di join:

  • Interno
  • Destra
  • Sono partiti
  • Esterno

Per eseguire questi tipi di unioni, utilizzeremo due file CSV.

Tieni presente che almeno un attributo o una colonna deve essere condiviso da entrambi i file CSV. Come osservato, la colonna 'Nome' e alcuni dei suoi attributi sono condivisi da entrambi i file CSV.

Unisci usando Inner Join

Specificando il parametro how='inner' nella funzione merge() si combineranno i due dataframe in base alla colonna specificata e quindi si fornirà un nuovo dataframe che contiene solo le righe con valori identici/stessi in entrambi i dataframe originali.

Come si può vedere, la funzione ha unito entrambi i file CSV e ha restituito le righe in base agli attributi comuni della colonna 'Nome'.

Unisci usando Right Outer Join

Quando viene specificato il parametro how='right', entrambi i dataframe verranno combinati in base alla colonna che abbiamo specificato per il parametro 'on'. E verrà restituito un nuovo dataframe contenente tutte le righe del dataframe destro, comprese le righe per le quali il dataframe sinistro non contiene valori, con il valore della colonna del dataframe sinistro impostato su NAN.

Unisci usando Left Outer Join

Quando il modo in cui il parametro viene specificato come 'sinistra', i due frame di dati verranno combinati in base alla colonna specificata utilizzando il parametro 'on', restituendo un nuovo frame di dati che contiene tutte le righe del frame di dati sinistro e tutte le righe che hanno NAN o null nel frame di dati destro e imposta il valore della colonna del frame di dati destro su NAN.

Unisci usando Full Outer Join

Quando viene specificato how='outer', i due frame di dati verranno combinati in base alla colonna specificata per il parametro 'on', restituendo un nuovo frame di dati che contiene le righe di entrambi i frame di dati df1 e df2 e impostando NAN come valore per qualsiasi riga per i quali i dati sono assenti in uno dei dataframe.

Esempio n. 2: combinazione di tutti i file CSV nella directory di lavoro

In questo metodo, utilizzeremo il modulo glob per combinare tutti i file .csv in un DataFrame panda. Tutte le librerie dovevano essere importate prima. Successivamente, imposteremo un percorso per ogni file CSV che vogliamo combinare. Il percorso del file è il primo argomento per la funzione os.path.join() nell'esempio seguente e il secondo argomento sono i componenti del percorso oi file .csv da unire. Qui, l'espressione '*.csv' troverà e restituirà ogni file nella directory di lavoro che termina con l'estensione del file .csv. La funzione glob.glob(files join) accetta un elenco dei nomi dei file uniti come input e restituisce un elenco di tutti i file uniti/combinati.

Questo script restituirà un dataframe con i dati combinati di tutti i file CSV nella nostra directory di lavoro.

Questo dataframe verrà trasformato in un file CSV e la funzione to_csv() verrà utilizzata per questa conversione. Questo nuovo file CSV sarà costituito dai file CSV combinati creati da tutti i file CSV archiviati nella directory di lavoro corrente.

Conclusione

In questo post, abbiamo discusso del motivo per cui dobbiamo combinare i file CSV. Abbiamo discusso di come combinare due o più file CSV in Python. Abbiamo diviso questo tutorial in due sezioni. Nella prima sezione, abbiamo spiegato come utilizzare le funzioni append() e concat() per combinare file CSV con la stessa struttura o nomi di colonna. Nella seconda sezione, abbiamo usato il metodo merge(), os.path.join(), e il metodo glob per combinare file CSV di diverse colonne e strutture.