Kako kombinirati CSV datoteke u Pythonu

Kako Kombinirati Csv Datoteke U Pythonu



Ponekad se dati skup podataka ne nalazi u jednoj CSV datoteci. Svi su na različitim Excel listovima. Već znate da je poželjno izvoditi sve računske aktivnosti ili aktivnosti predprocesiranja na jednom skupu podataka umjesto na nekoliko skupova podataka. Smanjuje ili štedi vrijeme koje trebamo potrošiti na zadatke pretprocesiranja. Također, kao analitičar podataka ili podatkovni znanstvenik, često se možete naći preopterećeni brojnim CSV datotekama koje se moraju spojiti prije nego uopće započnete analizu ili ispitivanje dostupnih podataka. S druge strane, nije uvijek moguće da su sve datoteke dobivene iz jednog ili istog izvora podataka i da imaju iste nazive stupaca/varijabli i strukturu podataka. Ovaj post će vas naučiti kombinirati dvije ili više CSV datoteka sa sličnom ili različitom strukturom stupaca.

Zašto kombinirati CSV datoteke?

Skup podataka može biti zbirka ili grupa vrijednosti ili brojeva povezanih s određenom temom. Na primjer, rezultati ispita svakog učenika u određenom razredu primjer su skupa podataka. Zbog veličine velikih skupova podataka, oni se često pohranjuju u zasebne CSV datoteke za različite kategorije. Na primjer, ako se od nas traži da pregledamo pacijenta za određenu bolest, moramo uzeti u obzir svaku komponentu, uključujući njihov spol, medicinski karton, dob, ozbiljnost bolesti itd. Posljedično, kombiniranje CSV podataka potrebno je za ispitivanje različitih prediktorskih utjecaja aspekti. Također, bolje je raditi i upravljati jednim skupom podataka umjesto s nekoliko skupova podataka tijekom izvođenja zadataka izračunavanja ili pretprocesiranja. Štedi memoriju i druge računalne resurse







Kako kombinirati CSV datoteke u Pythonu?

Postoji više načina i metoda za kombiniranje dvije ili više CSV datoteka u Pythonu. U odjeljku u nastavku koristit ćemo funkcije append(), concat() i merge() itd. za kombiniranje CSV datoteka u pandas podatkovni okvir, a zatim će podatkovni okviri biti pretvoreni u jednu CSV datoteku. Naučit ćemo kako kombinirati više CSV datoteka sa sličnom ili promjenjivom strukturom stupaca.



Metoda # 1: Kombiniranje CSV-ova sa sličnim strukturama ili stupcima

Naš trenutni radni direktorij ima dvije CSV datoteke, 'test1' i 'test2'.



Primjer # 1: Korištenje funkcije append().

Obje CSV datoteke imaju istu strukturu. Funkcija glob() koristit će se u ovoj metodi samo za ispisivanje CSV datoteka u radnom direktoriju. Zatim ćemo koristiti “pandas.DataFrame.append()” za čitanje naših CSV datoteka (sa zajedničkom strukturom tablice).





Izlaz:



Koristeći funkciju dodavanja, dodali smo ili dodali svaki red podataka iz test2.csv pod retke podataka test1.csv, jer se može vidjeti da su svi redovi podataka datoteke kombinirani. Za pretvaranje ovog podatkovnog okvira u CSV možemo upotrijebiti funkciju to_csv().

Ovo će stvoriti kombiniranu CSV datoteku CSV datoteka 'test1' i 'test2' u našem radnom direktoriju s navedenim nazivom, tj. merged.csv.

Primjer # 2: Korištenje funkcije concat().

Prvo ćemo uvesti modul pande. Metoda karte pročitat će svaku CSV datoteku koju smo proslijedili pomoću pd.read_csv(). Ove mapirane datoteke (CSV datoteke) zatim će se kombinirati duž osi retka prema zadanim postavkama pomoću funkcije pd.concat(). Ako želimo kombinirati CSV datoteke vodoravno, možemo proslijediti axis=1. Određivanje indeksa zanemarivanja = True također stvara kontinuirane vrijednosti indeksa za kombinirani podatkovni okvir.

Pd.read_csv() prosljeđuje se unutar funkcije concat() za čitanje CSV datoteka u podatkovni okvir pandas nakon ulančavanja.

Dobili smo podatkovni okvir s kombiniranim podacima svih CSV datoteka u radnom direktoriju. Sada ga pretvorimo u CSV datoteku.

Naš kombinirani CSV kreiran je u trenutnom direktoriju.

Metoda # 2: Kombiniranje CSV-ova s ​​različitim strukturama ili stupcima

Razgovarali smo o kombiniranju CSV datoteka s istim stupcima i strukturom u prvoj metodi. U ovoj metodi kombinirat ćemo CSV datoteke s različitim stupcima i strukturama.

Primjer # 1: Korištenje funkcije merge().

Funkcija 'pandas.merge()' u modulu pandas može kombinirati dvije CSV datoteke. Spajanje se jednostavno odnosi na kombiniranje dva skupa podataka u jedan skup podataka na temelju dijeljenih stupaca ili atributa.

Podatkovne okvire možemo spojiti na četiri različita načina spajanja:

  • Unutarnji
  • Pravo
  • Lijevo
  • Vanjski

Za izvođenje ovih vrsta spajanja koristit ćemo dvije CSV datoteke.

Imajte na umu da najmanje jedan atribut ili stupac moraju dijeliti obje CSV datoteke. Kao što je primijećeno, stupac 'Ime' i neki njegovi atributi dijele obje CSV datoteke.

Spajanje pomoću unutarnjeg spajanja

Navođenje parametra how=’inner’ u funkciji merge() kombinirat će dva podatkovna okvira prema navedenom stupcu, a zatim će dati novi podatkovni okvir koji sadrži samo retke s identičnim/istim vrijednostima u oba izvorna podatkovna okvira.

Kao što se može vidjeti da je funkcija spojila obje CSV datoteke i vratila retke na temelju zajedničkih atributa stupca 'Ime'.

Spajanje korištenjem desnog vanjskog spajanja

Kada je naveden parametar how=’right’, oba podatkovna okvira kombinirat će se na temelju stupca koji smo naveli za parametar ‘on’. Vratit će se novi okvir podataka koji sadrži sve retke iz desnog okvira podataka, uključujući sve retke za koje lijevi okvir podataka ne sadrži vrijednosti, s vrijednošću stupca lijevog okvira podataka postavljenom na NAN.

Spajanje korištenjem lijevog vanjskog spoja

Kada je parametar naveden kao 'lijevo', dva podatkovna okvira kombinirat će se na temelju navedenog stupca pomoću parametra 'on', vraćajući novi podatkovni okvir koji ima sve retke iz lijevog podatkovnog okvira, kao i sve retke koji imaju NAN ili nulte vrijednosti u desnom okviru podataka i postavlja vrijednost stupca desnog okvira podataka na NAN.

Spajanje korištenjem potpunog vanjskog spajanja

Kada je navedeno how='outer', dva podatkovna okvira kombinirat će se ovisno o stupcu navedenom za parametar 'on', vraćajući novi podatkovni okvir koji sadrži retke iz df1 i df2 podatkovnih okvira i postavljajući NAN kao vrijednost za sve retke za koje podaci nedostaju u jednom od podatkovnih okvira.

Primjer # 2: Kombiniranje svih CSV datoteka u radnom direktoriju

U ovoj metodi koristit ćemo modul glob za kombiniranje svih .csv datoteka u pandas DataFrame. Prvo je trebalo uvesti sve biblioteke. Zatim ćemo postaviti put za svaku CSV datoteku koju želimo kombinirati. Put do datoteke je prvi argument za funkciju os.path.join() u donjem primjeru, a drugi argument su komponente puta ili .csv datoteke koje treba spojiti. Ovdje će izraz ‘*.csv’ pronaći i vratiti svaku datoteku u radnom direktoriju koja završava s nastavkom datoteke .csv. Funkcija glob.glob(files joined) prihvaća popis naziva spojenih datoteka kao ulaz i ispisuje popis svih spojenih/kombiniranih datoteka.

Ova skripta će vratiti podatkovni okvir s kombiniranim podacima svih CSV datoteka u našem radnom direktoriju.

Ovaj podatkovni okvir transformirat će se u CSV datoteku, a funkcija to_csv() koristit će se za ovu konverziju. Ova nova CSV datoteka bit će kombinirana CSV datoteka stvorena od svih CSV datoteka pohranjenih u trenutnom radnom direktoriju.

Zaključak

U ovom smo postu raspravljali o tome zašto trebamo kombinirati CSV datoteke. Razgovarali smo o tome kako se dvije ili više CSV datoteka mogu kombinirati u Pythonu. Podijelili smo ovu lekciju u dva dijela. U prvom odjeljku objasnili smo kako koristiti funkcije append() i concat() za kombiniranje CSV datoteka iste strukture ili naziva stupaca. U drugom odjeljku upotrijebili smo metodu merge(), os.path.join() i glob metodu za kombiniranje CSV datoteka različitih stupaca i struktura.