Kā apvienot CSV failus programmā Python

Ka Apvienot Csv Failus Programma Python



Dažreiz dotā datu kopa nav vienā CSV failā. Tie visi ir dažādās Excel lapās. Jūs jau zināt, ka visas skaitļošanas vai pirmapstrādes darbības ir vēlams veikt vienā datu kopā, nevis vairākās datu kopās. Tas samazina vai ietaupa laiku, kas mums jāpavada priekšapstrādes uzdevumiem. Turklāt, būdams datu analītiķis vai datu zinātnieks, jūs bieži varat atrast sevi pārslogot ar daudziem CSV failiem, kas ir jāapvieno, pirms pat sākat analīzi vai pieejamo datu pārbaudi. No otras puses, ne vienmēr ir iespējams, ka visi faili ir iegūti no viena vai tā paša datu avota un tiem ir vienādi kolonnu/mainīgo nosaukumi un datu struktūra. Šī ziņa iemācīs apvienot divus vai vairākus CSV failus ar līdzīgu vai atšķirīgu kolonnu struktūru.

Kāpēc apvienot CSV failus?

Datu kopa var būt ar konkrētu priekšmetu saistītu vērtību vai skaitļu kolekcija vai grupa. Piemēram, katra skolēna pārbaudes rezultāti noteiktā klasē ir datu kopas piemērs. Tā kā datu kopas ir lielas, tās bieži tiek glabātas atsevišķos CSV failos dažādām kategorijām. Piemēram, ja mums ir jāpārbauda pacientam noteikta slimība, mums ir jāņem vērā katrs komponents, ieskaitot viņa dzimumu, medicīnisko vēsturi, vecumu, slimības smagumu utt. Līdz ar to CSV datu apvienošana ir nepieciešama, lai pārbaudītu dažādus prognozētājus ietekmējošus faktorus. aspektiem. Turklāt, veicot aprēķinu vai pirmapstrādes uzdevumus, labāk ir strādāt un pārvaldīt vienu datu kopu, nevis vairākas datu kopas. Tas ietaupa atmiņu un citus skaitļošanas resursus







Kā apvienot CSV failus programmā Python?

Ir vairāki veidi un metodes, kā apvienot divus vai vairākus CSV failus programmā Python. Tālāk esošajā sadaļā mēs izmantosim funkcijas append(), concat(), un merge() utt., lai apvienotu CSV failus pandas datu ietvarā, tad datu rāmji tiks pārveidoti par vienu CSV failu. Mēs iemācīsim, kā apvienot vairākus CSV failus ar līdzīgu vai mainīgu kolonnu struktūru.



1. metode: CSV failu apvienošana ar līdzīgām struktūrām vai kolonnām

Mūsu pašreizējā darba direktorijā ir divi CSV faili, “test1” un “test2”.



1. piemērs: Funkcijas append() izmantošana

Abiem CSV failiem ir vienāda struktūra. Funkcija glob() tiks izmantota šajā metodē, lai uzskaitītu tikai CSV failus darba direktorijā. Pēc tam mēs izmantosim “pandas.DataFrame.append()”, lai lasītu mūsu CSV failus (ar kopēju tabulas struktūru).





Izvade:



Izmantojot pievienošanas funkciju, mēs esam pievienojuši vai pievienojuši katru datu rindu no test2.csv zem test1.csv datu rindām, jo ​​redzams, ka visas faila datu rindas ir apvienotas. Lai pārvērstu šo datu rāmi uz CSV, mēs varam izmantot funkciju to_csv().

Tādējādi mūsu darba direktorijā tiks izveidots apvienots CSV fails no “test1” un “test2” CSV failiem ar norādīto nosaukumu, t.i., merged.csv.

2. piemērs: funkcijas concat() izmantošana

Vispirms mēs importēsim pandas moduli. Kartes metode nolasīs katru mūsu nodoto CSV failu, izmantojot pd.read_csv(). Šie kartētie faili (CSV faili) pēc noklusējuma tiks apvienoti pa rindas asi, izmantojot funkciju pd.concat(). Ja vēlamies apvienot CSV failus horizontāli, mēs varam nodot axis=1. Norādot ignorēšanas indeksu = True, kombinētajam datu kadram tiek izveidotas arī nepārtrauktas indeksa vērtības.

Pd.read_csv() tiek nodots funkcijā concat(), lai pēc savienošanas nolasītu CSV failus pandas datu rāmī.

Mēs esam ieguvuši datu rāmi ar visu CSV failu apvienotajiem datiem darba direktorijā. Tagad pārveidosim to par CSV failu.

Mūsu apvienotais CSV fails tiek izveidots pašreizējā direktorijā.

2. metode: CSV failu apvienošana ar dažādām struktūrām vai kolonnām

Pirmajā metodē mēs apspriedām CSV failu apvienošanu ar vienādām kolonnām un struktūru. Izmantojot šo metodi, mēs apvienosim CSV failus ar dažādām kolonnām un struktūrām.

1. piemērs: Funkcijas merge() izmantošana

Pandas moduļa funkcija “pandas.merge()” var apvienot divus CSV failus. Apvienošana vienkārši attiecas uz divu datu kopu apvienošanu vienā datu kopā, pamatojoties uz koplietotajām kolonnām vai atribūtiem.

Mēs varam apvienot datu rāmjus četros dažādos savienošanas veidos:

  • Iekšējais
  • Pa labi
  • Pa kreisi
  • Ārējais

Lai veiktu šāda veida sapludināšanu, mēs izmantosim divus CSV failus.

Ņemiet vērā, ka vismaz vienam atribūtam vai kolonnai ir jābūt kopīgotam abiem CSV failiem. Kā novērots, kolonnu “Nosaukums” un dažus tās atribūtus koplieto abi CSV faili.

Apvienot, izmantojot iekšējo savienojumu

Funkcijā merge() norādot parametru how='inner', abi datu rāmji tiks apvienoti atbilstoši norādītajai kolonnai un pēc tam tiks nodrošināts jauns datu rāmis, kurā ir tikai rindas ar identiskām/vienādām vērtībām abos sākotnējos datu rāmjos.

Kā redzams, funkcija ir apvienojusi abus CSV failus un atgriezusi rindas, pamatojoties uz kopējiem kolonnas “Nosaukums” atribūtiem.

Apvienojiet, izmantojot labo ārējo savienojumu

Ja ir norādīts parametrs how=’right’, abi datu rāmji tiks apvienoti, pamatojoties uz kolonnu, ko norādījām parametram “on”. Un tiks atgriezts jauns datu rāmis, kurā ir visas rindas no labā datu rāmja, tostarp visas rindas, kurām kreisajā datu ietvarā nav vērtību, un kreisā datu rāmja kolonnas vērtība ir iestatīta uz NAN.

Apvienojiet, izmantojot kreiso ārējo savienojumu

Ja parametrs ir norādīts kā “kreisais”, abi datu rāmji tiks apvienoti, pamatojoties uz norādīto kolonnu, izmantojot parametru “ieslēgts”, atgriežot jaunu datu rāmi, kurā ir visas rindas no kreisā datu rāmja, kā arī visas rindas, kurām ir NAN. vai nulles vērtības labajā datu rāmī un iestata labās datu rāmja kolonnas vērtību uz NAN.

Apvienojiet, izmantojot pilnu ārējo savienojumu

Ja ir norādīts how='outer', abi datu rāmji tiks apvienoti atkarībā no kolonnas, kas norādīta parametram 'on', atgriežot jaunu datu rāmi, kurā ir gan df1, gan df2 datu rāmja rindas, un iestatot NAN kā vērtību visām rindām. kuriem datu nav vienā no datu rāmjiem.

2. piemērs: visu CSV failu apvienošana darba direktorijā

Izmantojot šo metodi, mēs izmantosim globu moduli, lai apvienotu visus .csv failus pandas DataFrame. Vispirms bija jāimportē visas bibliotēkas. Tālāk mēs iestatīsim ceļu katram CSV failam, ko vēlamies apvienot. Faila ceļš ir pirmais arguments funkcijai os.path.join() tālāk esošajā piemērā, un otrais arguments ir savienojamie ceļa komponenti vai .csv faili. Šeit izteiksme “*.csv” atradīs un atgriezīs katru failu darba direktorijā, kas beidzas ar .csv faila paplašinājumu. Funkcija glob.glob(fies joined) pieņem sapludināto failu nosaukumu sarakstu kā ievadi un izvada visu sapludināto/apvienoto failu sarakstu.

Šis skripts atgriezīs datu rāmi ar visu mūsu darba direktorijā esošo CSV failu apvienotajiem datiem.

Šis datu rāmis tiks pārveidots par CSV failu, un šai konvertēšanai tiks izmantota funkcija to_csv(). Šis jaunais CSV fails būs apvienotie CSV faili, kas izveidoti no visiem pašreizējā darba direktorijā saglabātajiem CSV failiem.

Secinājums

Šajā ziņojumā mēs apspriedām, kāpēc mums ir jāapvieno CSV faili. Mēs apspriedām, kā Python var apvienot divus vai vairākus CSV failus. Mēs sadalījām šo pamācību divās sadaļās. Pirmajā sadaļā mēs paskaidrojām, kā izmantot append() un concat() funkcijas, lai apvienotu CSV failus ar tādu pašu struktūru vai kolonnu nosaukumiem. Otrajā sadaļā mēs izmantojām merge() metodi, os.path.join() un glob metodi dažādu kolonnu un struktūru CSV failu apvienošanai.