Kuidas Pythonis CSV-faile kombineerida

Kuidas Pythonis Csv Faile Kombineerida



Mõnikord pole antud andmekogumit ühes CSV-failis. Need on kõik erinevatel Exceli lehtedel. Teate juba, et mitme andmestiku asemel on eelistatav teha kõik arvutus- või eeltöötlustoimingud ühes andmestikus. See vähendab või säästab aega, mis kulub eeltöötlusülesannetele. Samuti võite andmeanalüütiku või andmeteadlasena sageli leida end ülekoormatud arvukate CSV-failidega, mis tuleb enne olemasolevate andmete analüüsi või uurimise alustamist ühendada. Teisest küljest ei ole alati võimalik, et kõik failid on saadud ühest või samast andmeallikast ning neil on samad veeru/muutujate nimed ja andmestruktuur. See postitus õpetab teid ühendama kahte või enamat CSV-faili sarnase või erineva veeru struktuuriga.

Miks kombineerida CSV-faile?

Andmekogum võib olla konkreetse teemaga seotud väärtuste või arvude kogum või rühm. Näiteks iga õpilase testitulemused teatud klassis on andmestiku näide. Suurte andmekogumite suuruse tõttu salvestatakse need sageli erinevate kategooriate jaoks eraldi CSV-failidesse. Näiteks kui meilt nõutakse patsiendi läbivaatamist konkreetse haiguse suhtes, peame arvestama iga komponendiga, sealhulgas tema sugu, haiguslugu, vanust, haiguse tõsidust jne. Järelikult on CSV-andmete kombineerimine vajalik erinevate ennustajat mõjutavate tegurite uurimiseks. aspekte. Samuti on arvutus- või eeltöötlustoimingute tegemisel parem töötada ja hallata ühte andmekogumit, mitte mitut andmekogumit. See säästab mälu ja muid arvutusressursse







Kuidas Pythonis CSV-faile kombineerida?

Kahe või enama CSV-faili ühendamiseks Pythonis on mitu võimalust ja meetodit. Allolevas jaotises kasutame CSV-failide ühendamiseks panda andmeraamiks funktsioone append(), concat() ja merge() jne. Seejärel teisendatakse andmeraamid üheks CSV-failiks. Õpetame, kuidas kombineerida mitut sarnase või muutuva veerustruktuuriga CSV-faili.



1. meetod: CSV-de kombineerimine sarnaste struktuuride või veergudega

Meie praeguses töökataloogis on kaks CSV-faili, 'test1' ja 'test2'.



Näide # 1: Funktsiooni append() kasutamine

Mõlemad CSV-failid on sama struktuuriga. Funktsiooni glob() kasutatakse selles meetodis ainult töökataloogis olevate CSV-failide loetlemiseks. Seejärel kasutame CSV-failide lugemiseks (ühise tabelistruktuuriga) käsku pandas.DataFrame.append()).





Väljund:



Lisamisfunktsiooni kasutades oleme lisanud või lisanud iga andmerea failist test2.csv faili test1.csv andmeridade alla, kuna on näha, et faili kõik andmeread on kombineeritud. Selle andmeraami CSV-vormingusse teisendamiseks saame kasutada funktsiooni to_csv().

See loob meie töökataloogis CSV-failide 'test1' ja 'test2' kombineeritud CSV-faili määratud nimega, st merged.csv.

Näide # 2: funktsiooni concat() kasutamine

Esmalt impordime pandamooduli. Kaardimeetod loeb iga CSV-faili, mille oleme edastanud, kasutades pd.read_csv(). Need vastendatud failid (CSV-failid) kombineeritakse seejärel vaikimisi piki rea telge, kasutades funktsiooni pd.concat(). Kui tahame CSV-faile horisontaalselt kombineerida, saame edastada axis=1. Ignoreerimisindeksi määramine = Tõene loob kombineeritud andmekaadri jaoks ka pidevad indeksi väärtused.

Pd.read_csv() edastatakse funktsiooni concat() sees, et lugeda CSV-failid pärast ühendamist panda andmeraami.

Oleme saanud andmeraami kõigi töökataloogis olevate CSV-failide kombineeritud andmetega. Nüüd teisendame selle CSV-failiks.

Meie kombineeritud CSV luuakse praeguses kataloogis.

2. meetod: CSV-de kombineerimine erinevate struktuuride või veergudega

Arutasime esimeses meetodis samade veergude ja struktuuriga CSV-failide kombineerimist. Selle meetodi puhul ühendame erinevate veergude ja struktuuridega CSV-failid.

Näide # 1: Funktsiooni merge() kasutamine

Pandade mooduli funktsioon „pandas.merge()” saab ühendada kaks CSV-faili. Ühendamine tähendab lihtsalt kahe andmekogumi ühendamist üheks andmekoguks jagatud veergude või atribuutide põhjal.

Saame andmeraamid liita neljal erineval viisil:

  • Sisemine
  • Õige
  • Vasakule
  • Väline

Seda tüüpi liitmiste tegemiseks kasutame kahte CSV-faili.

Pange tähele, et mõlemad CSV-failid peavad jagama vähemalt ühte atribuuti või veergu. Nagu täheldatud, jagavad mõlemad CSV-failid veergu „Nimi” ja mõningaid selle atribuute.

Ühendage sisemise liite abil

Funktsioonis merge() parameetri how='inner' määramine ühendab kaks andmekaadrit vastavalt määratud veerule ja annab seejärel uue andmeraami, mis sisaldab ainult mõlema algse andmekaadri identsete/samade väärtustega ridu.

Nagu näha, on funktsioon liitnud mõlemad CSV-failid ja tagastanud read veeru 'Nimi' tavaliste atribuutide alusel.

Ühendage parempoolse välimise liite abil

Kui on määratud parameeter how=’right’, kombineeritakse mõlemad andmeraamid veeru alusel, mille määrasime parameetri „on” jaoks. Ja uus andmeraam, mis sisaldab kõiki parempoolse andmeraami ridu, sealhulgas ridu, mille vasakpoolses andmeraamis väärtusi pole, tagastatakse, kusjuures vasakpoolse andmeraami veeru väärtuseks on määratud NAN.

Ühendage, kasutades vasakut välimist liitmist

Kui parameeter on määratud kui „vasak”, kombineeritakse need kaks andmekaadrit määratud veeru alusel, kasutades parameetrit „sees”, tagastades uue andmeraami, mis sisaldab kõiki vasakpoolse andmeraami ridu ja kõiki ridu, millel on NAN. või nullväärtused õiges andmekaadris ja määrab õige andmekaadri veeru väärtuseks NAN.

Ühendage täieliku välisühenduse abil

Kui on määratud how='outer', kombineeritakse need kaks andmekaadrit olenevalt parameetri 'on' jaoks määratud veerust, tagastades uue andmeraami, mis sisaldab nii df1 kui ka df2 andmekaadrite ridu, ja seades mis tahes ridade väärtuseks NAN. mille kohta andmed ühes andmeraamis puuduvad.

Näide # 2: kõigi töökataloogi CSV-failide ühendamine

Selle meetodi puhul kasutame glob-moodulit, et ühendada kõik csv-failid panda DataFrame'iks. Kõik raamatukogud tuli kõigepealt importida. Järgmisena määrame tee igale CSV-failile, mida tahame kombineerida. Failitee on funktsiooni os.path.join() esimene argument allolevas näites ja teine ​​argument on kas ühendatavad tee komponendid või .csv-failid. Siin otsib ja tagastab väljend „*.csv” iga faili töökataloogist, mis lõpeb csv-faililaiendiga. Funktsioon glob.glob(liidetud failid) aktsepteerib ühendatud failide nimede loendit sisendina ja väljastab kõigi liidetud/ühendatud failide loendi.

See skript tagastab andmeraami kõigi meie töökataloogis olevate CSV-failide kombineeritud andmetega.

See andmeraam teisendatakse CSV-failiks ja selle teisendamiseks kasutatakse funktsiooni to_csv(). See uus CSV-fail on kombineeritud CSV-failid, mis on loodud kõigist praegusesse töökataloogi salvestatud CSV-failidest.

Järeldus

Selles postituses arutasime, miks peame CSV-faile kombineerima. Arutasime, kuidas saab Pythonis kahte või enamat CSV-faili kombineerida. Jagasime selle õpetuse kaheks osaks. Esimeses jaotises selgitasime, kuidas kasutada append() ja concat() funktsioone, et kombineerida sama struktuuri või veerunimedega CSV-faile. Teises jaotises kasutasime erinevate veergude ja struktuuride CSV-failide kombineerimiseks meetodit merge(), os.path.join() ja glob meetodit.