Jak kombinovat soubory CSV v Pythonu

Jak Kombinovat Soubory Csv V Pythonu



Někdy daná datová sada není v jediném souboru CSV. Všechny jsou na různých listech Excelu. Již víte, že je vhodnější provádět všechny výpočetní činnosti nebo činnosti předběžného zpracování na jedné datové sadě namísto několika datových sad. Zkracuje nebo šetří čas, který musíme strávit předzpracováním úloh. Jako datový analytik nebo datový vědec se také můžete často ocitnout zahlceni četnými soubory CSV, které je nutné sloučit, než vůbec začnete s analýzou nebo zkoumáním dostupných dat. Na druhou stranu není vždy možné, aby všechny soubory byly získány z jednoho nebo stejného zdroje dat a měly stejné názvy sloupců/proměnných a datovou strukturu. Tento příspěvek vás naučí kombinovat dva nebo více souborů CSV s podobnou nebo odlišnou strukturou sloupců.

Proč kombinovat soubory CSV?

Soubor dat může být sbírka nebo skupina hodnot nebo čísel souvisejících s konkrétním předmětem. Příkladem datové sady jsou například výsledky testů každého studenta v určité třídě. Vzhledem k velikosti velkých datových sad jsou často uloženy v samostatných souborech CSV pro různé kategorie. Pokud jsme například povinni vyšetřit pacienta na konkrétní onemocnění, musíme vzít v úvahu každou složku, včetně jeho pohlaví, lékařského záznamu, věku, závažnosti onemocnění atd. V důsledku toho je ke zkoumání různých prediktorů ovlivňujících data nutné kombinovat data CSV. aspekty. Je také lepší pracovat a spravovat jednu datovou sadu, spíše než několik datových sad při provádění úloh výpočtu nebo předběžného zpracování. Šetří paměť a další výpočetní zdroje







Jak kombinovat soubory CSV v Pythonu?

Existuje několik způsobů a metod, jak kombinovat dva nebo více souborů CSV v Pythonu. V části níže použijeme funkce append(), concat() a merge() atd. pro kombinování souborů CSV do datového rámce pandas, poté budou datové rámce převedeny do jediného souboru CSV. Naučíme vás, jak kombinovat více CSV souborů s podobnou nebo proměnnou strukturou sloupců.



Metoda č. 1: Kombinace CSV s podobnými strukturami nebo sloupci

Náš aktuální pracovní adresář má dva soubory CSV, „test1“ a „test2“.



Příklad č. 1: Použití funkce append().

Oba soubory CSV mají stejnou strukturu. Funkce glob() bude v této metodě použita pouze k vypsání souborů CSV v pracovním adresáři. Potom použijeme „pandas.DataFrame.append()“ ke čtení našich CSV souborů (se společnou strukturou tabulek).





Výstup:



Pomocí funkce append jsme přidali nebo přidali každý datový řádek z test2.csv pod datové řádky test1.csv, protože je vidět, že všechny datové řádky souboru byly zkombinovány. K převodu tohoto datového rámce na CSV můžeme použít funkci to_csv().

Tím se v našem pracovním adresáři vytvoří kombinovaný soubor CSV se soubory CSV „test1“ a „test2“ se zadaným názvem, tj. merged.csv.

Příklad č. 2: Použití funkce concat().

Nejprve naimportujeme modul pandas. Metoda map přečte každý soubor CSV, který jsme předali pomocí pd.read_csv(). Tyto namapované soubory (soubory CSV) budou poté ve výchozím nastavení kombinovány podél osy řádku pomocí funkce pd.concat(). Pokud chceme soubory CSV kombinovat horizontálně, můžeme předat axis=1. Zadáním ignorovaného indexu = True také vytvoříte souvislé hodnoty indexu pro kombinovaný datový rámec.

Funkce pd.read_csv() je předána do funkce concat() pro načtení souborů CSV do datového rámce pandas po zřetězení.

Získali jsme datový rámec s kombinovanými daty všech CSV souborů v pracovním adresáři. Nyní jej převedeme do souboru CSV.

Náš kombinovaný CSV je vytvořen v aktuálním adresáři.

Metoda č. 2: Kombinace CSV s různými strukturami nebo sloupci

V první metodě jsme diskutovali o kombinování souborů CSV se stejnými sloupci a strukturou. V této metodě zkombinujeme soubory CSV s různými sloupci a strukturami.

Příklad č. 1: Použití funkce merge().

Funkce „pandas.merge()“ v modulu pandas může kombinovat dva soubory CSV. Sloučení jednoduše znamená sloučení dvou datových sad do jedné datové sady na základě sdílených sloupců nebo atributů.

Datové rámce můžeme sloučit čtyřmi různými způsoby spojení:

  • Vnitřní
  • Že jo
  • Vlevo, odjet
  • Vnější

K provedení těchto typů sloučení použijeme dva soubory CSV.

Všimněte si, že alespoň jeden atribut nebo sloupec musí být sdílen oběma soubory CSV. Jak bylo uvedeno, sloupec „Název“ a některé jeho atributy jsou sdíleny oběma soubory CSV.

Sloučení pomocí vnitřního spojení

Zadáním parametru how=’inner’ ve funkci merge() zkombinujete dva datové rámce podle zadaného sloupce a poté poskytnete nový datový rámec, který bude obsahovat pouze řádky s identickými/stejnými hodnotami v obou původních datových rámcích.

Jak je vidět, funkce sloučila oba soubory CSV a vrátila řádky na základě společných atributů sloupce ‚Name‘.

Sloučit pomocí pravého vnějšího spojení

Když je zadán parametr how=’right’, oba datové rámce budou kombinovány na základě sloupce, který jsme zadali pro parametr ‘on’. A bude vrácen nový datový rámec obsahující všechny řádky z pravého datového rámce, včetně všech řádků, pro které levý datový rámec neobsahuje žádné hodnoty, s hodnotou sloupce levého datového rámce nastavenou na NAN.

Sloučit pomocí levého vnějšího spojení

Když je parametr zadán jako „levý“, oba datové rámce se zkombinují na základě zadaného sloupce pomocí parametru „on“ a vrátí nový datový rámec, který obsahuje všechny řádky z levého datového rámce a také všechny řádky, které mají NAN. nebo hodnoty null v pravém datovém rámci a nastaví hodnotu pravého sloupce datového rámce na NAN.

Sloučit pomocí úplného vnějšího spojení

Když je zadáno how='outer', budou oba datové rámce zkombinovány v závislosti na sloupci zadaném pro parametr 'on' a vrátí nový datový rámec, který obsahuje řádky z datových rámců df1 i df2 a nastaví NAN jako hodnotu pro všechny řádky. pro které data chybí v jednom z datových rámců.

Příklad č. 2: Kombinace všech souborů CSV v pracovním adresáři

Při této metodě použijeme modul glob ke spojení všech souborů .csv do datového rámce pandas. Všechny knihovny musely být nejprve importovány. Dále nastavíme cestu pro každý soubor CSV, který chceme zkombinovat. Cesta k souboru je prvním argumentem funkce os.path.join() v níže uvedeném příkladu a druhým argumentem jsou buď komponenty cesty nebo soubory .csv, které mají být spojeny. Zde výraz „*.csv“ vyhledá a vrátí každý soubor v pracovním adresáři, který končí příponou souboru .csv. Funkce glob.glob(files joined) přijímá jako vstup seznam názvů sloučených souborů a vypisuje seznam všech sloučených/kombinovaných souborů.

Tento skript vrátí datový rámec s kombinovanými daty všech souborů CSV v našem pracovním adresáři.

Tento datový rámec bude transformován do souboru CSV a pro tento převod bude použita funkce to_csv(). Tento nový soubor CSV bude kombinovanými soubory CSV vytvořenými ze všech souborů CSV uložených v aktuálním pracovním adresáři.

Závěr

V tomto příspěvku jsme diskutovali, proč musíme kombinovat soubory CSV. Diskutovali jsme o tom, jak lze v Pythonu kombinovat dva nebo více souborů CSV. Tento tutoriál jsme rozdělili do dvou částí. V první části jsme vysvětlili, jak používat funkce append() a concat() ke kombinaci souborů CSV se stejnou strukturou nebo názvy sloupců. Ve druhé části jsme použili metodu merge(), os.path.join() a metodu glob pro kombinování souborů CSV různých sloupců a struktur.