Cum să combinați fișierele CSV în Python

Cum Sa Combinati Fisierele Csv In Python



Uneori, setul de date dat nu se află într-un singur fișier CSV. Toate sunt pe diferite foi Excel. Știți deja că este de preferat să efectuați toate activitățile de calcul sau de preprocesare pe un singur set de date în loc de mai multe seturi de date. Reduce sau economisește timpul pe care trebuie să-l petrecem sarcinilor de preprocesare. De asemenea, în calitate de analist de date sau de cercetător de date, s-ar putea să te trezești frecvent supraîncărcat de numeroase fișiere CSV care trebuie îmbinate înainte de a începe chiar analiza sau examinarea datelor disponibile. Pe de altă parte, nu este întotdeauna posibil ca toate fișierele să fie obținute din aceeași sursă de date sau din aceeași sursă de date și să aibă aceleași nume de coloane/variabile și structură de date. Această postare vă va învăța să combinați două sau mai multe fișiere CSV cu o structură de coloane similară sau diferită.

De ce să combinați fișierele CSV?

Un set de date poate fi o colecție sau un grup de valori sau numere legate de un anumit subiect. De exemplu, rezultatele testelor fiecărui elev într-o anumită clasă sunt un exemplu de set de date. Datorită dimensiunii seturilor de date mari, acestea sunt adesea stocate în fișiere CSV separate pentru diferite categorii. De exemplu, dacă ni se cere să examinăm un pacient pentru o anumită boală, trebuie să luăm în considerare fiecare componentă, inclusiv sexul acestuia, dosarul medical, vârsta, severitatea bolii etc. În consecință, combinarea datelor CSV este necesară pentru a examina diferitele factori care influențează predictorii aspecte. De asemenea, este mai bine să lucrați și să gestionați un singur set de date decât mai multe seturi de date în timp ce efectuați sarcinile de calcul sau preprocesare. Economisește memorie și alte resurse de calcul







Cum să combinați fișierele CSV în Python?

Există mai multe moduri și metode de a combina două sau mai multe fișiere CSV în Python. În secțiunea de mai jos, vom folosi funcțiile append(), concat() și merge() etc., pentru a combina fișiere CSV în cadrul de date Pandas, apoi cadrele de date vor fi convertite într-un singur fișier CSV. Vom învăța cum să combinați mai multe fișiere CSV cu o structură de coloane similară sau variabilă.



Metoda # 1: Combinarea CSV-urilor cu structuri sau coloane similare

Directorul nostru de lucru actual are două fișiere CSV, „test1” și „test2”.



Exemplul # 1: Utilizarea funcției append().

Ambele fișiere CSV au aceeași structură. Funcția glob() va fi folosită în această metodă pentru a lista numai fișierele CSV din directorul de lucru. Apoi vom folosi „pandas.DataFrame.append()” pentru a citi fișierele noastre CSV (cu o structură de tabel comună).





Ieșire:



Folosind funcția de adăugare, am adăugat sau am adăugat fiecare rând de date din test2.csv sub rândurile de date din test1.csv, deoarece se poate vedea că toate rândurile de date ale fișierului au fost combinate. Pentru a converti acest cadru de date în CSV, putem folosi funcția to_csv().

Aceasta va crea un fișier CSV combinat de fișiere CSV de „test1” și „test2” în directorul nostru de lucru cu numele specificat, adică merged.csv.

Exemplul # 2: Utilizarea funcției concat().

Vom importa mai întâi modulul panda. Metoda hărții va citi fiecare fișier CSV pe care l-am transmis folosind pd.read_csv(). Aceste fișiere mapate (fișiere CSV) vor fi apoi combinate de-a lungul axei rândurilor în mod implicit, folosind funcția pd.concat(). Dacă vrem să combinăm fișierele CSV pe orizontală, putem trece axa=1. Specificarea indexului de ignorare = True creează și valori continue ale indexului pentru cadrul de date combinat.

pd.read_csv() este trecut în interiorul funcției concat() pentru a citi fișierele CSV în cadrul de date panda după concatenare.

Am obținut un cadru de date cu datele combinate ale tuturor fișierelor CSV din directorul de lucru. Acum, să-l convertim într-un fișier CSV.

CSV-ul nostru combinat este creat în directorul curent.

Metoda # 2: Combinarea CSV-urilor cu diferite structuri sau coloane

Am discutat despre combinarea fișierelor CSV cu aceleași coloane și structură în prima metodă. În această metodă, vom combina fișiere CSV cu diferite coloane și structuri.

Exemplul # 1: Utilizarea funcției merge().

Funcția „pandas.merge()” din modulul pandas poate combina două fișiere CSV. Îmbinarea se referă pur și simplu la combinarea a două seturi de date într-un singur set de date bazat pe coloane sau atribute partajate.

Putem îmbina cadrele de date în patru moduri diferite de alăturare:

  • Interior
  • Dreapta
  • Stânga
  • Exterior

Pentru a efectua aceste tipuri de îmbinări, vom folosi două fișiere CSV.

Rețineți că cel puțin un atribut sau coloană trebuie să fie partajat de ambele fișiere CSV. După cum sa observat, coloana „Nume” și unele dintre atributele sale sunt partajate de ambele fișiere CSV.

Îmbinați folosind Inner Join

Specificarea parametrului how=’inner’ în funcția merge() va combina cele două cadre de date în conformitate cu coloana specificată și apoi va furniza un nou cadru de date care conține doar rândurile cu valori identice/aceleași în ambele cadre de date originale.

După cum se poate vedea, funcția a îmbinat ambele fișiere CSV și a returnat rândurile pe baza atributelor comune ale coloanei „Nume”.

Îmbinați folosind Right Outer Join

Când este specificat parametrul how='right', ambele cadre de date vor fi combinate pe baza coloanei pe care am specificat-o pentru parametrul 'on'. Și va fi returnat un nou cadru de date care conține toate rândurile din cadrul de date din dreapta, inclusiv orice rânduri pentru care cadrul de date din stânga nu conține valori, cu valoarea coloanei din cadrul de date din stânga setată la NAN.

Îmbinați folosind Left Outer Join

Când parametrul este specificat ca „stânga”, cele două cadre de date vor fi combinate pe baza coloanei specificate folosind parametrul „on”, returnând un nou cadru de date care are toate rândurile din cadrul de date din stânga, precum și orice rând care au NAN. sau valori nule în cadrul de date din dreapta și setează valoarea coloanei din cadrul de date din dreapta la NAN.

Îmbinați folosind Full Outer Join

Când este specificat how='outer', cele două cadre de date vor fi combinate în funcție de coloana specificată pentru parametrul 'on', returnând un nou cadru de date care conține rândurile din ambele cadre de date df1 și df2 și setând NAN ca valoare pentru orice rând. pentru care datele sunt absente într-unul dintre cadrele de date.

Exemplul # 2: Combinarea tuturor fișierelor CSV din directorul de lucru

În această metodă, vom folosi modulul glob pentru a combina toate fișierele .csv într-un Pandas DataFrame. Toate bibliotecile trebuiau importate mai întâi. În continuare, vom seta o cale pentru fiecare fișier CSV pe care dorim să-l combinăm. Calea fișierului este primul argument pentru funcția os.path.join() din exemplul de mai jos, iar al doilea argument este fie componentele căii, fie fișierele .csv care urmează să fie asociate. Aici, expresia „*.csv” va găsi și va returna fiecare fișier din directorul de lucru care se termină cu extensia de fișier .csv. Funcția glob.glob(fișiere îmbinate) acceptă o listă cu numele fișierelor îmbinate ca intrare și emite o listă a tuturor fișierelor îmbinate/combinate.

Acest script va returna un cadru de date cu datele combinate ale tuturor fișierelor CSV din directorul nostru de lucru.

Acest cadru de date va fi transformat într-un fișier CSV, iar funcția to_csv() va fi folosită pentru această conversie. Acest nou fișier CSV va fi fișierele CSV combinate create din toate fișierele CSV stocate în directorul de lucru curent.

Concluzie

În această postare, am discutat de ce trebuie să combinăm fișierele CSV. Am discutat despre cum două sau mai multe fișiere CSV pot fi combinate în Python. Am împărțit acest tutorial în două secțiuni. În prima secțiune, am explicat cum să folosiți funcțiile append() și concat() pentru a combina fișiere CSV cu aceeași structură sau nume de coloane. În a doua secțiune, am folosit metoda merge(), os.path.join() și metoda glob pentru a combina fișiere CSV ale diferitelor coloane și structuri.