Hvordan kombinere CSV -filer i Python

Hvordan kombinere CSV -filer i Python

Noen ganger er det gitte datasettet ikke i en enkelt CSV -fil. De er alle på forskjellige Excel -ark. Du vet allerede at det er å foretrekke å utføre alle beregnings- eller forbehandlingsaktiviteter på et enkelt datasett i stedet for flere datasett. Det kutter ned eller sparer tiden vi trenger å bruke på forbehandlingsoppgaver. Som dataanalytiker eller dataforsker kan du ofte finne deg overbelastet av mange CSV -filer som må slås sammen før du til og med starter analysen eller undersøkelsen av tilgjengelige data. På den annen side er det ikke alltid mulig at alle filene er hentet fra enkelt- eller samme datakilde og har samme kolonne/variabler navn og datastruktur. Dette innlegget vil lære deg å kombinere to eller flere CSV -filer med en lignende eller annen kolonnestruktur.

Hvorfor kombinere CSV -filer?

Et datasett kan være en samling eller en gruppe verdier eller tall relatert til et spesifikt emne. For eksempel er hver elevs test resulterer i en viss klasse er et eksempel på et datasett. På grunn av størrelsen på store datasett, lagres de ofte i separate CSV -filer for forskjellige kategorier. For eksempel, hvis vi er pålagt å undersøke en pasient for en spesifikk sykdom, må vi vurdere hver komponent, inkludert deres kjønn, medisinsk journal, alder, alvorlighetsgrad av sykdom osv. Følgelig er det nødvendig å kombinere CSV-data for å undersøke forskjellige prediktor-påvirkningsaspekter. Det er også bedre å jobbe og administrere et enkelt datasett i stedet for flere datasett mens du utfører beregnings- eller forbehandlingsoppgaver. Det sparer minne og andre beregningsressurser

Hvordan kombinere CSV -filer i Python?

Det er flere måter og metoder for å kombinere to eller flere CSV -filer i Python. I avsnittet nedenfor vil vi bruke Append (), Concat () og Merge () -funksjoner osv., For å kombinere CSV -filer til Pandas DataFrame, vil DataFrames bli konvertert til en enkelt CSV -fil. Vi lærer hvordan du kan kombinere flere CSV -filer med en lignende eller variabel kolonnestruktur.

Metode 1: Kombinere CSV -er med lignende strukturer eller kolonner

Vår nåværende arbeidskatalog har to CSV -filer, “Test1” og “Test2”.

Eksempel 1: Bruke append () -funksjon

Begge CSV -filene har samme struktur. Glob () -funksjonen vil bli brukt i denne metoden for bare å liste opp CSV -filene i arbeidskatalogen. Så bruker vi “Pandas.Dataramme.vedlegg () ”for å lese CSV -filene våre (med en felles tabellstruktur).

Produksjon:

Ved hjelp av vedleggsfunksjonen har vi lagt ved eller lagt til hver datarow fra Test2.CSV under dataene Rows of Test1.CSV, som det kan sees at alle filens datrader er blitt kombinert. For å konvertere denne DataFrame til CSV, kan vi bruke TO_CSV () -funksjonen.

Dette vil lage en kombinert CSV -fil med CSV -filer av 'Test1' og 'Test2' i vår arbeidskatalog med det spesifiserte navnet, i.e., slått sammen.CSV.

Eksempel 2: Bruke Concat () -funksjon

Vi importerer Pandas -modulen først. Kartmetoden vil lese hver CSV -fil vi har bestått ved hjelp av PD.read_csv (). Disse kartlagte filene (CSV -filer) vil deretter kombineres langs radaksen som standard ved hjelp av funksjonen PD.concat (). Hvis vi vil kombinere CSV -filer horisontalt, kan vi passere akse = 1. Å spesifisere Ignore Index = True oppretter også kontinuerlige indeksverdier for den kombinerte DataFrame.

PD.read_csv () sendes innenfor concat () -funksjonen for å lese CSV -filene i Pandas dataFrame etter sammenkobling.

Vi har oppnådd en DataFrame med kombinert data fra alle CSV -filer i arbeidskatalogen. La oss nå konvertere den til en CSV -fil.

Vår kombinerte CSV er opprettet i den gjeldende katalogen.

Metode nr. 2: Kombinere CSV -er med forskjellige strukturer eller kolonner

Vi diskuterte å kombinere CSV -filer med de samme kolonnene og strukturen i den første metoden. I denne metoden vil vi kombinere CSV -filer med forskjellige kolonner og strukturer.

Eksempel 1: Bruke Merge () -funksjon

“Pandaene.Merge () ”-funksjon i Pandas -modulen kan kombinere to CSV -filer. Sammenslåing refererer ganske enkelt til å kombinere to datasett til et enkelt datasett basert på delte kolonner eller attributter.

Vi kan slå sammen dataframmer på fire forskjellige måter å bli med på:

  • Indre
  • Ikke sant
  • Venstre
  • Ytre

For å utføre denne typen fusjoner, vil vi bruke to CSV -filer.

Merk at minst ett attributt eller kolonne må deles av begge CSV -filene. Som observert deles kolonnen "Navn" og noen av dens attributter av begge CSV -filene.

Slå sammen med indre sammenføyning

Spesifisering av parameter hvordan = "indre" i fusjonen () -funksjonen vil kombinere de to dataframene i henhold til den spesifiserte kolonnen og deretter gi en ny DataFrame som bare inneholder radene med identiske/samme verdier i begge originale DataFrames.

Som det kan sees at funksjonen har slått sammen begge CSV -filene og returnert radene basert på vanlige attributter til kolonnen 'Navn'.

Slå sammen med høyre ytre sammenføyning

Når parameter hvordan = "riktig" er spesifisert, vil begge dataframene kombineres basert på kolonnen vi spesifiseres for parameter 'på'. Og en ny dataaframe som inneholder alle radene fra høyre dataaframe, inkludert eventuelle rader som venstre datafram ikke inneholder noen verdier, vil bli returnert, med venstre dataframes kolonneverdi satt til NAN.

Slå sammen med venstre ytre sammenføyning

Når hvordan parameteren er spesifisert som 'venstre', vil de to dataframene kombineres basert på den spesifiserte kolonnen ved å bruke 'ON' -parameteren, og returnerer en ny DataFrame som har alle radene fra venstre DataFrame så vel som alle rader som har NAN eller nullverdier i riktig dataaframe og angir riktig datafram kolonneverdi til NAN.

Slå sammen med full ytre sammenføyning

Når hvordan = "ytre" er spesifisert, vil de to dataframene kombineres avhengig av kolonnen som er spesifisert for 'ON' -parameteren, og returnerer en ny DataFrame som inneholder radene fra både DF1 og DF2 Dataframes og setter NAN som verdien for alle rader for hvilke data er fraværende i et av dataframene.

Eksempel 2: Kombinere alle CSV -filer i arbeidskatalogen

I denne metoden vil vi bruke globmodulen til å kombinere alle .CSV filer til en Pandas dataaframe. Alle biblioteker måtte importeres først. Deretter vil vi angi en bane for hver CSV -fil vi vil kombinere. Filbanen er det første argumentet for OS.sti.Bli med () -funksjonen i eksemplet nedenfor, og det andre argumentet er enten banekomponentene eller .CSV -filer som skal sammenføyes. Her, uttrykket '*.CSV 'vil finne og returnere hver fil i arbeidskatalogen som ender med .CSV File Extension. Globen.Glob (filer sammenføyet) -funksjon godtar en liste over navnene på de sammenslåtte filene som en inndata og sender ut en liste over alle sammenslåtte/kombinerte filer.

Dette skriptet vil returnere en DataFrame med kombinert data fra alle CSV -filene i vår arbeidskatalog.

Denne DataFrame vil bli transformert til en CSV -fil, og TO_CSV () -funksjonen vil bli brukt til denne konverteringen. Denne nye CSV -filen vil være de kombinerte CSV -filene som er opprettet fra alle CSV -filene som er lagret i den gjeldende arbeidskatalogen.

Konklusjon

I dette innlegget diskuterte vi hvorfor vi trenger å kombinere CSV -filer. Vi diskuterte hvordan to eller flere CSV -filer kan kombineres i Python. Vi delte denne opplæringen i to seksjoner. I den første delen forklarte vi hvordan du bruker append () og concat () -funksjoner for å kombinere CSV -filer med samme struktur eller kolonnenavn. I den andre delen brukte vi Merge () -metoden, OS.sti.Bli med (), og Glob -metoden for å kombinere CSV -filer med forskjellige kolonner og strukturer.