Pandad teisendavad kategoorilised väärtused siseväärtusteks

Pandad Teisendavad Kategoorilised Vaartused Sisevaartusteks



Masinõppe teostamise andmestikud sisaldavad nii numbrilisi kui ka kategoorilisi muutujaid. Kategoorilised muutujad on stringi tüüpi andmed, millest inimesed kergesti aru saavad. Masinad seevastu ei saa kategoorilistest sisenditest otse aru. Järelikult tuleb kategooriline sisu teisendada arvväärtusteks, mida masinad saavad tõlgendada.

Kategoorilise siseriiklikuks teisendamise meetodid

Pandades saadaolevad tehnikad DataFrame'i kategooria väärtuste int-väärtusteks teisendamiseks on toodud siin:

    • DataFrame.replace() meetod
    • DataFrame.apply(factorize()) meetod

Me kasutame neid meetodeid selles artiklis ja selgitame üksikasjalikult, kuidas mõlemat meetodit pandades kasutada.







Näide # 1: Pandas Replace() meetodi kasutamine

DataFrame'i kategoorilised väärtused saab teisendada int-iks, kasutades pandade meetodit 'DataFrame.replace()'. Siin õpime seda meetodit kasutama.



Selle tehnika optimaalseks täitmiseks Pythonis kasutasime tööriista 'Spyder'. Skripti kirjutamise alustamiseks avage tööriistas 'Spyder' uus Pythoni fail. Skripti kirjutamise kõige olulisem nõue on asjakohaste teekide importimine. Kuna peame rakendama pandade meetodi, on meil pandade funktsioonidele juurdepääsemiseks käsk „impordi pandad pd-na”. Seejärel alustame oma Pythoni põhikoodi. Oleme loonud DataFrame'i, kasutades meetodit 'pd.DataFrame()'. DataFrame lähtestatakse kolme veeruga 'Nimi', 'Kraadid' ja 'Sissetulek'. Kõik DataFrame'i veerud salvestavad sama pikkusega väärtusi.



Esimeses veerus 'Nimi' on kaheksa väärtust, milleks on 'bush', 'albert', 'harry', 'peter', 'emma', 'newton', 'smith' ja 'elsa'. Teine veerg 'Degree' salvestab samuti kaheksa kategoorilist väärtust, milleks on 'BS', 'MS', 'MS', 'BS', 'BS', 'BS', 'MS' ja 'MS'. Viimases veerus 'Sissetulek' on kaheksa täisarvu '60000', '80000', '75000', '45000', '56000', '65000', '55000' ja '70000'. Oleme loonud DataFrame'i objekti 'staff', et salvestada funktsiooni 'pd.DataFrame()' kutsumise väljund. Esialgse DataFrame'i kuvamiseks kasutasime meetodit 'print()', mille parameetriks oli DataFrame'i nimi 'staff' skripti viimasel real.






Väljundi vaatamiseks terminalis kasutage tööriista 'Spyder' nuppu 'Käivita fail' või vajutage klahve 'Shift+Enter'. Terminalis kuvatav väljund näitab DataFrame'i kolme veeruga, mis on edukalt genereeritud.


Nüüd on meie DataFrame konstrueeritud, me peame rakendama sellele vajalikku tehnikat. Pandade meetodit 'DataFrame.replace()' kasutatakse määratud veeru kategooriliste väärtuste teisendamiseks täisarvudeks, et masinad saaksid need loetavaks muuta.



Oleme andnud DataFrame'i nime koos konkreetse veeru nimega, mille väärtused peame asendama, mis on 'staff['degree']. Soovime, et veeru “Kraadi” väärtused, millel on kategoorilised väärtused, asendataks täisarvudega. Seejärel käivitatakse meetod '.replace()'. Oleme selle jaganud kahte komplekti; esimene sisaldab kahte kategoorilist väärtust '['BS', 'MS']), mille eraldasime veerust 'Degree'. Nagu näete, kasutab veerg „Kraadid” neid kahte väärtust korduvalt. Kui meil oli kolmas väärtus, oleksime seda kindlasti maininud. Teises komplektis on kaks siseväärtust “[0, 1]”, mis asendavad vastavalt esimese komplekti väärtusi. Teine parameeter 'inplace' on seatud väärtuseks 'True', mis võimaldab väärtusi asendada. Kui see on seatud väärtusele 'False', keelab see asendamise. Lõpuks oleme kasutanud meetodit 'print()', et kuvada värskendatud 'personali' DataFrame.


Saadud DataFrame'i veerus „Degree” on täisarvud. Väärtus 'BS' asendatakse '0s' ja 'MS' asendatakse '1s'.


Saate isegi kontrollida iga veeru andmetüüpi, kasutades atribuuti 'dataframe.dtype'. See annab meile kõigi määratud DataFrame'i veergude andmetüübid.


Siin on meie DataFrame'i andmetüübid. Näeme, et veeru “Kraadi” andmetüüp on muudetud väärtuseks “int64”.

Näide # 2: Pandas apply() meetodi kasutamine

Teine meetod, mille pandad meile pakkusid, on funktsioon 'DataFrame.apply()', mis võimaldab teisendada kategoorilised väärtused täisarvudeks. Eelmises näites õppisime teisendama ühe kategoorilise veeru täisarvuks. Nüüd näeme, kuidas teisendada kõik DataFrame'i kategoorilised veerud int-iks.

Alustades praktilisest rakendamisest, peame importima selle meetodi jaoks olulise raamatukogu, milleks on pandad. Oleme kasutanud skripti 'import pandad pd-na', et importida pandad oma Pythoni faili 'Spyderi' tööriistas, mis võimaldab meil 'pd' abil pääseda juurde pandamoodulitele. Kasutasime DataFrame'i koostamiseks funktsiooni 'pd.DataFrame()'.

Sellel DataFrame'il on neli veergu 'rühm', 'positsioon', 'skoorid' ja 'abi'. Iga veerg salvestab 9 väärtust. Veeru „rühm” väärtused on „X”, „X”, „Y”, „X”, „Y”, „Y”, „Y”, „X” ja „Y”. Veerus 'positsioon' on 9 väärtust, mis on 'A', 'C', 'D', 'A', 'C', 'B', 'B', 'D' ja 'B'. Veerus 'Skoorid' on täisarvud '4', '8', '7', '10', '9', '5', '7', '3' ja '23'. Viimases veerus “abistab” on väärtused “10”, “2”, “3”, “9”, “3”, “7”, “4”, “2” ja “9”.

Oleme loonud DataFrame'i objekti 'prog' ja määranud sellele meetodi 'pd.DataFrame()' käivitamise väljundi. Seega salvestatakse failist 'pd.DataFrame()' loodud DataFrame'i kaader kausta 'prog'. Nüüd saame selle objekti abil juurdepääsu DataFrame'ile. Selle DataFrame'i vaatamiseks oleme kasutanud meetodit 'print()', mille parameetriks on DataFrame'i objekt 'prog'.


Eelmise Pythoni programmi käivitamisel kuvatakse terminalis nelja veeruga DataFrame.


Mitme kategoorilise veeru teisendamiseks täisarvudeks oleme järginud seda tehnikat. Esmalt peame valima kõik veerud, mis sisaldavad objekti andmetüüpi, kasutades pandade meetodit 'DataFrame.select_dtypes().columns'. Kui kasutame seda oma skriptis vastavalt vajadusele, on see 'prog.select_dtypes(['object']).columns'. See valib kõik veerud, mille andmetüüp on 'objekt' 'prog' DataFrame'is. Oleme selle meetodi väljundi salvestamiseks loonud muutuja 'concate_col'. Nüüd pääseme andmetüübi veergudele 'objekt' lihtsalt selle muutuja 'concat_col' abil.

Nüüd oleme nende veergude täisarvudeks teisendamiseks kasutanud pandasid 'DataFrame.apply()' koos meetodiga 'pd.factorize()'. Oleme kasutanud DataFrame'i nimega muutujat 'concat_col', seejärel käivitatakse meetod '.apply()'. Meetodi „.apply” sulgudes oleme kutsunud meetodi „pd.factorize()”, kus „x” võib olla mis tahes väärtus „prog” DataFrame'ist koos andmetüübiga „objekt”. Seega on kogu see koodirida kirjutatud järgmiselt: 'prog['concat_col'] = prog['concat_col'].apply(lambda x : pd.factorize(x)[0])'. Faktoridamise meetod võtab väärtuse koos andmetüüp 'objekt' ja teisendada see 'int'-ks. Lõpliku väljundi saab kuvada funktsiooni 'print()' kutsumisega, edastades selle parameetriks muutuja 'prog'.


Värskendatud DataFrame'is saame jälgida, et veergude 'rühm' ja 'positsioon' väärtused olid algselt kategoorilised, st objektid. Värskendatud DataFrame'i väljundis on mõlemal veerul täisarvud. Veerus “rühm” asendatakse “X” “0”-ga ja “Y” “1-ga”. Arvestades, et veerg 'positsioon' 'A' asendatakse '0', 'C' '1', 'D' '2' ja 'B' väärtusega '3'.


Nüüd kontrollime värskendatud andmetüüpe.


Kõigi järgmiste veergude andmetüüp on 'int64'.

Järeldus

Meie juhend käsitleb kategooriliste väärtuste teisendamist arvväärtusteks, nii et masinad saaksid need arusaadavaks teha, kuna need ei saa objekti andmetüüpi töödelda. Oleme teile tutvustanud kahte pandade teegi pakutavat lähenemisviisi vajaliku andmetüübi saamiseks. Samuti jagasime 'Spyder' tööriistaga töötavate näidiskoodide praktilise rakendamisega iga näite tulemusi. Lõpuks käsitlesime iga sammu soovitud tulemuse saavutamiseks.