Ako kombinovať súbory CSV v Pythone

Ako Kombinovat Subory Csv V Pythone



Niekedy sa daný súbor údajov nenachádza v jednom súbore CSV. Všetky sú na rôznych hárkoch Excelu. Už viete, že je vhodnejšie vykonávať všetky výpočtové alebo predspracovacie činnosti na jednom súbore údajov namiesto niekoľkých súborov údajov. Znižuje alebo šetrí čas, ktorý musíme venovať úlohám predbežného spracovania. Ako dátový analytik alebo dátový vedec sa tiež môžete často ocitnúť preťažení mnohými súbormi CSV, ktoré sa musia zlúčiť ešte predtým, ako začnete s analýzou alebo skúmaním dostupných údajov. Na druhej strane nie je vždy možné, aby sa všetky súbory získali z jedného alebo rovnakého zdroja údajov a mali rovnaké názvy stĺpcov/premenných a štruktúru údajov. Tento príspevok vás naučí kombinovať dva alebo viac súborov CSV s podobnou alebo odlišnou štruktúrou stĺpcov.

Prečo kombinovať súbory CSV?

Množina údajov môže byť zbierka alebo skupina hodnôt alebo čísel súvisiacich s konkrétnym predmetom. Príkladom súboru údajov sú napríklad výsledky testov každého študenta v určitej triede. Vzhľadom na veľkosť veľkých súborov údajov sú často uložené v samostatných súboroch CSV pre rôzne kategórie. Napríklad, ak sa od nás vyžaduje vyšetrenie pacienta na konkrétnu chorobu, musíme zvážiť každú zložku vrátane jeho pohlavia, lekárskeho záznamu, veku, závažnosti ochorenia atď. V dôsledku toho je potrebné kombinovať údaje CSV na preskúmanie rôznych prediktorov ovplyvňujúcich aspekty. Pri vykonávaní výpočtových úloh alebo úloh predbežného spracovania je tiež lepšie pracovať a spravovať jeden súbor údajov, a nie niekoľko súborov údajov. Šetrí pamäť a ďalšie výpočtové zdroje







Ako skombinovať súbory CSV v Pythone?

Existuje viacero spôsobov a metód na kombinovanie dvoch alebo viacerých súborov CSV v Pythone. V časti nižšie použijeme funkcie append(), concat() a merge() atď. na kombinovanie súborov CSV do dátového rámca pandas, potom sa dátové rámce skonvertujú do jedného súboru CSV. Naučíme vás skombinovať viacero CSV súborov s podobnou alebo variabilnou štruktúrou stĺpcov.



Metóda č. 1: Kombinovanie CSV s podobnými štruktúrami alebo stĺpcami

Náš aktuálny pracovný adresár obsahuje dva súbory CSV, „test1“ a „test2“.



Príklad č. 1: Použitie funkcie append().

Oba súbory CSV majú rovnakú štruktúru. Funkcia glob() sa v tejto metóde použije iba na vypísanie súborov CSV v pracovnom adresári. Potom použijeme „pandas.DataFrame.append()“ na čítanie našich CSV súborov (so spoločnou štruktúrou tabuliek).





Výkon:



Pomocou funkcie append sme pridali alebo pridali každý riadok údajov z test2.csv pod riadky údajov test1.csv, pretože je vidieť, že všetky riadky údajov súboru boli skombinované. Na konverziu tohto dátového rámca na CSV môžeme použiť funkciu to_csv().

Tým sa vytvorí kombinovaný súbor CSV so súbormi CSV „test1“ a „test2“ v našom pracovnom adresári so zadaným názvom, t. j. merged.csv.

Príklad č. 2: Použitie funkcie concat().

Najprv importujeme modul pandy. Metóda mapy prečíta každý súbor CSV, ktorý sme odovzdali pomocou pd.read_csv(). Tieto namapované súbory (súbory CSV) sa potom predvolene skombinujú pozdĺž osi riadka pomocou funkcie pd.concat(). Ak chceme skombinovať súbory CSV horizontálne, môžeme zadať axis=1. Zadaním ignorovaného indexu = True sa tiež vytvoria kontinuálne indexové hodnoty pre kombinovaný dátový rámec.

Pd.read_csv() sa odovzdá vo funkcii concat() na načítanie súborov CSV do dátového rámca pandas po zreťazení.

Získali sme dátový rámec s kombinovanými dátami všetkých CSV súborov v pracovnom adresári. Teraz ho skonvertujme na súbor CSV.

Náš kombinovaný CSV je vytvorený v aktuálnom adresári.

Metóda č. 2: Kombinovanie CSV s rôznymi štruktúrami alebo stĺpcami

V prvej metóde sme diskutovali o kombinovaní súborov CSV s rovnakými stĺpcami a štruktúrou. V tejto metóde skombinujeme súbory CSV s rôznymi stĺpcami a štruktúrami.

Príklad č. 1: Použitie funkcie merge().

Funkcia „pandas.merge()“ v module pandas môže kombinovať dva súbory CSV. Zlúčenie jednoducho znamená spojenie dvoch množín údajov do jednej množiny údajov na základe zdieľaných stĺpcov alebo atribútov.

Dátové rámce môžeme zlúčiť štyrmi rôznymi spôsobmi spojenia:

  • Vnútorný
  • Správny
  • Vľavo
  • Vonkajšie

Na vykonanie týchto typov zlúčenia použijeme dva súbory CSV.

Upozorňujeme, že aspoň jeden atribút alebo stĺpec musia zdieľať oba súbory CSV. Ako bolo uvedené, stĺpec „Názov“ a niektoré jeho atribúty sú zdieľané oboma súbormi CSV.

Zlúčiť pomocou vnútorného spojenia

Zadaním parametra how=’inner’ vo funkcii merge() sa skombinujú dva dátové rámce podľa určeného stĺpca a následne poskytne nový dátový rámec, ktorý obsahuje iba riadky s identickými/rovnakými hodnotami v oboch pôvodných dátových rámcoch.

Ako je možné vidieť, funkcia zlúčila oba súbory CSV a vrátila riadky na základe spoločných atribútov stĺpca „Názov“.

Zlúčiť pomocou pravého vonkajšieho spojenia

Keď je zadaný parameter how=’right’, oba dátové rámce sa skombinujú na základe stĺpca, ktorý sme zadali pre parameter ‘on’. A vráti sa nový dátový rámec obsahujúci všetky riadky z pravého dátového rámca vrátane všetkých riadkov, pre ktoré ľavý dátový rámec neobsahuje žiadne hodnoty, pričom hodnota stĺpca ľavého dátového rámca bude nastavená na NAN.

Zlúčiť pomocou ľavého vonkajšieho spojenia

Keď je parameter špecifikovaný ako „left“, dva dátové rámce sa skombinujú na základe zadaného stĺpca pomocou parametra “on”, čím sa vráti nový dátový rámec, ktorý obsahuje všetky riadky z ľavého dátového rámca, ako aj všetky riadky s NAN. alebo hodnoty null v pravom dátovom rámci a nastaví hodnotu stĺpca pravého dátového rámca na NAN.

Zlúčiť pomocou úplného vonkajšieho spojenia

Keď je zadané how='outer', tieto dva dátové rámce sa skombinujú v závislosti od stĺpca určeného pre parameter 'on' a vrátia nový dátový rámec, ktorý obsahuje riadky z dátových rámcov df1 aj df2 a nastaví NAN ako hodnotu pre všetky riadky. pre ktoré údaje chýbajú v jednom z dátových rámcov.

Príklad č. 2: Spojenie všetkých súborov CSV v pracovnom adresári

Pri tejto metóde použijeme modul glob na spojenie všetkých súborov .csv do dátového rámca pandas. Všetky knižnice museli byť najskôr importované. Ďalej nastavíme cestu pre každý súbor CSV, ktorý chceme skombinovať. Cesta k súboru je prvým argumentom funkcie os.path.join() v nižšie uvedenom príklade a druhým argumentom sú buď komponenty cesty alebo súbory .csv, ktoré sa majú spojiť. Tu výraz „*.csv“ nájde a vráti každý súbor v pracovnom adresári, ktorý končí príponou súboru .csv. Funkcia glob.glob(files connected) akceptuje zoznam názvov zlúčených súborov ako vstup a na výstupe sa zobrazí zoznam všetkých zlúčených/kombinovaných súborov.

Tento skript vráti dátový rámec s kombinovanými údajmi všetkých CSV súborov v našom pracovnom adresári.

Tento dátový rámec bude transformovaný do súboru CSV a na túto konverziu sa použije funkcia to_csv(). Tento nový súbor CSV bude kombinovanými súbormi CSV vytvorenými zo všetkých súborov CSV uložených v aktuálnom pracovnom adresári.

Záver

V tomto príspevku sme diskutovali o tom, prečo musíme kombinovať súbory CSV. Diskutovali sme o tom, ako možno v Pythone kombinovať dva alebo viac súborov CSV. Tento tutoriál sme rozdelili na dve časti. V prvej časti sme vysvetlili, ako používať funkcie append() a concat() na kombinovanie súborov CSV s rovnakou štruktúrou alebo názvami stĺpcov. V druhej časti sme použili metódu merge(), os.path.join() a metódu glob na kombinovanie CSV súborov rôznych stĺpcov a štruktúr.