Kaip sujungti CSV failus Python

Kaip Sujungti Csv Failus Python



Kartais pateiktas duomenų rinkinys nėra viename CSV faile. Jie visi yra skirtinguose „Excel“ lapuose. Jau žinote, kad visas skaičiavimo ar išankstinio apdorojimo veiklas geriau atlikti viename duomenų rinkinyje, o ne keliuose duomenų rinkiniuose. Tai sumažina arba sutaupo laiką, kurį turime skirti išankstinio apdorojimo užduotims. Be to, kaip duomenų analitikas ar duomenų mokslininkas, dažnai galite perkrauti daugybę CSV failų, kuriuos reikia sujungti prieš pradedant analizuoti ar tirti turimus duomenis. Kita vertus, ne visada įmanoma, kad visi failai būtų gauti iš vieno ar to paties duomenų šaltinio ir turi tuos pačius stulpelių / kintamųjų pavadinimus ir duomenų struktūrą. Šis įrašas išmokys sujungti du ar daugiau CSV failų su panašia arba skirtinga stulpelių struktūra.

Kodėl verta derinti CSV failus?

Duomenų rinkinys gali būti reikšmių ar skaičių, susijusių su konkrečia tema, rinkinys arba grupė. Pavyzdžiui, kiekvieno mokinio testo rezultatai tam tikroje klasėje yra duomenų rinkinio pavyzdys. Dėl didelių duomenų rinkinių dydžio jie dažnai saugomi atskiruose CSV failuose, skirtuose skirtingoms kategorijoms. Pavyzdžiui, jei reikia ištirti pacientą dėl konkrečios ligos, turime atsižvelgti į kiekvieną komponentą, įskaitant jo lytį, medicininę istoriją, amžių, ligos sunkumą ir kt. Todėl norint ištirti įvairius prognozuojančius veiksnius, reikia derinti CSV duomenis. aspektus. Be to, atliekant skaičiavimo ar išankstinio apdorojimo užduotis, geriau dirbti ir valdyti vieną duomenų rinkinį, o ne kelis duomenų rinkinius. Tai taupo atmintį ir kitus skaičiavimo išteklius







Kaip sujungti CSV failus Python?

Yra keli būdai ir metodai, kaip sujungti du ar daugiau CSV failų „Python“. Toliau esančiame skyriuje naudosime funkcijas append(), concat(), ir merge() ir t. t., kad sujungtume CSV failus į pandos duomenų rėmelį, tada duomenų rėmeliai bus konvertuojami į vieną CSV failą. Išmokysime, kaip sujungti kelis CSV failus su panašia arba kintama stulpelių struktūra.



1 metodas: CSV sujungimas su panašiomis struktūromis arba stulpeliais

Mūsų dabartiniame darbo kataloge yra du CSV failai „test1“ ir „test2“.



1 pavyzdys: Funkcijos append() naudojimas

Abu CSV failai yra tos pačios struktūros. Funkcija glob() šiuo metodu bus naudojama tik CSV failams darbo kataloge pateikti. Tada naudosime „pandas.DataFrame.append()“, kad skaitytume CSV failus (su bendra lentelės struktūra).





Išvestis:



Naudodami pridėjimo funkciją, kiekvieną duomenų eilutę iš test2.csv pridėjome arba įtraukėme į test1.csv duomenų eilutes, nes matyti, kad visos failo duomenų eilutės buvo sujungtos. Norėdami konvertuoti šį duomenų rėmelį į CSV, galime naudoti funkciją to_csv().

Taip mūsų darbo kataloge bus sukurtas jungtinis CSV failas iš „test1“ ir „test2“ CSV failų nurodytu pavadinimu, t. y. merged.csv.

2 pavyzdys: Concat() funkcijos naudojimas

Pirmiausia importuosime pandų modulį. Žemėlapio metodas nuskaitys kiekvieną mūsų perduotą CSV failą naudodamas pd.read_csv(). Tada šie susieti failai (CSV failai) pagal numatytuosius nustatymus bus sujungti išilgai eilutės ašies naudojant funkciją pd.concat(). Jei norime sujungti CSV failus horizontaliai, galime perduoti axis=1. Nurodžius nepaisymo indeksą = True, taip pat sukuriamos nuolatinės kombinuoto duomenų rėmo indekso reikšmės.

Pd.read_csv() perduodama concat() funkcijai, kad po sujungimo būtų nuskaityti CSV failai į pandos duomenų rėmelį.

Gavome duomenų rėmelį su sujungtais visų CSV failų duomenimis darbiniame kataloge. Dabar konvertuokime jį į CSV failą.

Mūsų sujungtas CSV yra sukurtas dabartiniame kataloge.

2 metodas: CSV sujungimas su skirtingomis struktūromis arba stulpeliais

Pirmuoju metodu aptarėme CSV failų sujungimą su tais pačiais stulpeliais ir struktūra. Šiuo metodu mes sujungsime CSV failus su skirtingais stulpeliais ir struktūromis.

1 pavyzdys: Funkcijos merge() naudojimas

Pandas modulio funkcija „pandas.merge()“ gali sujungti du CSV failus. Sujungimas tiesiog reiškia dviejų duomenų rinkinių sujungimą į vieną duomenų rinkinį pagal bendrinamus stulpelius arba atributus.

Duomenų rėmelius galime sujungti keturiais skirtingais sujungimo būdais:

  • Vidinis
  • Teisingai
  • Kairė
  • Išorinis

Norėdami atlikti šių tipų sujungimus, naudosime du CSV failus.

Atminkite, kad bent vienas atributas arba stulpelis turi būti bendrinamas abiejuose CSV failuose. Kaip pastebėta, stulpelis „Vardas“ ir kai kurie jo atributai yra bendrinami abiejuose CSV failuose.

Sujungti naudojant vidinį sujungimą

Nurodant parametrą how='inner' funkcijoje merge() bus sujungti du duomenų rėmeliai pagal nurodytą stulpelį, o tada bus pateiktas naujas duomenų rėmelis, kuriame yra tik eilutės su identiškomis / tomis pačiomis reikšmėmis abiejuose pradiniuose duomenų rėmeliuose.

Kaip matyti, funkcija sujungė abu CSV failus ir grąžino eilutes pagal bendrus stulpelio „Vardas“ atributus.

Sujunkite naudodami dešinįjį išorinį sujungimą

Kai nurodomas parametras how=‘right“, abu duomenų rėmeliai bus sujungti pagal stulpelį, kurį nurodėme parametrui „on“. Bus grąžintas naujas duomenų rėmelis, kuriame yra visos eilutės iš dešiniojo duomenų rėmelio, įskaitant visas eilutes, kurių kairiajame duomenų rėmelyje nėra reikšmių, o kairiojo duomenų rėmelio stulpelio vertė nustatyta į NAN.

Sujunkite naudodami kairįjį išorinį sujungimą

Kai parametras nurodomas kaip „left“, du duomenų rėmeliai bus sujungiami pagal nurodytą stulpelį, naudojant parametrą „on“, pateikiant naują duomenų rėmelį, kuriame yra visos eilutės iš kairiojo duomenų rėmelio, taip pat visos eilutės, turinčios NAN. arba nulinės reikšmės dešiniajame duomenų rėmelyje ir nustato dešiniojo duomenų rėmelio stulpelio reikšmę į NAN.

Sujunkite naudodami visą išorinį sujungimą

Kai nurodyta how='outer', du duomenų rėmeliai bus sujungti, atsižvelgiant į stulpelį, nurodytą parametrui 'on', grąžinant naują duomenų rėmelį, kuriame yra df1 ir df2 duomenų rėmelių eilutės, ir nustatant NAN kaip bet kurių eilučių vertę. kurių duomenų viename iš duomenų rėmelių nėra.

2 pavyzdys: visų CSV failų sujungimas darbo kataloge

Taikydami šį metodą naudosime globos modulį, kad sujungtume visus .csv failus į pandas DataFrame. Pirmiausia reikėjo importuoti visas bibliotekas. Tada nustatysime kiekvieno CSV failo, kurį norime sujungti, kelią. Failo kelias yra pirmasis funkcijos os.path.join() argumentas toliau pateiktame pavyzdyje, o antrasis argumentas yra kelio komponentai arba .csv failai, kuriuos reikia sujungti. Čia posakis „*.csv“ suras ir grąžins kiekvieną failą darbiniame kataloge, kuris baigiasi .csv failo plėtiniu. Funkcija glob.glob(files joined) priima sujungtų failų pavadinimų sąrašą kaip įvestį ir pateikia visų sujungtų / sujungtų failų sąrašą.

Šis scenarijus pateiks duomenų rėmelį su sujungtais visų mūsų darbo kataloge esančių CSV failų duomenimis.

Šis duomenų rėmelis bus transformuotas į CSV failą ir šiam konvertavimui bus naudojama funkcija to_csv(). Šis naujas CSV failas bus sujungti CSV failai, sukurti iš visų CSV failų, saugomų dabartiniame darbo kataloge.

Išvada

Šiame įraše aptarėme, kodėl turime sujungti CSV failus. Aptarėme, kaip Python galima sujungti du ar daugiau CSV failų. Mes padalijome šią pamoką į dvi dalis. Pirmajame skyriuje paaiškinome, kaip naudoti append() ir concat() funkcijas, kad būtų galima sujungti tos pačios struktūros arba stulpelių pavadinimų CSV failus. Antrame skyriuje naudojome merge() metodą, os.path.join() ir glob metodą skirtingų stulpelių ir struktūrų CSV failų derinimui.