Acum putem crea Serii; hai să vedem ce putem face cu ele.
Accesarea elementelor individuale
Putem folosi funcția len(), pentru care am învățat deja două utilizări, într-un al treilea mod: pentru a stabili numărul de perechi cheie/valoare dintr-o serie. Folosind exemplul din Figura 11.2 (p. 105):
print(len(alter_egos)) ▐ 4
Accesarea valorii pentru o anumită cheie folosește exact aceeași sintaxă pe care a folosit-o matricele NumPy (boxies), cu excepția cheii în locul indexului numeric:
superhero = alter_egos['Peter'] print("Pssst...Peter is really {}.".format(superhero)) ▐ Pssst...Peter is really Spidey.
Acesta este motivul pentru care este important ca cheile unui tablou asociativ să fie unice. Dacă introducem “alter_egos[‘Peter’],” trebuie să obținem un răspuns bine definit, nu un set ambiguu de alternative. (1) Valorile, pe de altă parte, pot foarte bine să nu fie unice.
Pentru a suprascrie valoarea pentru o cheie cu o valoare nouă, tratați-o ca pe o variabilă și mergeți pe:
alter_egos['Bruce'] = 'Batman' print(alter_egos) ▐ Bruce Batman ▐ Peter Spidey ▐ Tony Iron Man ▐ Thor Thor ▐ dtype: object
Aceeași sintaxă funcționează și pentru adăugarea unei perechi cheie/valoare complet nouă:
alter_egos['Diana'] = 'Wonder Woman' print(alter_egos) ▐ Bruce Batman ▐ Peter Spidey ▐ Tony Iron Man ▐ Thor Thor ▐ Diana Wonder Woman ▐ dtype: object
Este la fel ca în cazul variabilelor obișnuite, dacă te gândești la asta. A spune „x=5” suprascrie valoarea curentă a lui x dacă există deja un x, în caz contrar se creează o nouă variabilă x cu acea valoare.
În cele din urmă, pentru a elimina definitiv o pereche cheie/valoare, utilizați operatorul del:
del alter_egos['Tony'] print(alter_egos) ▐ Bruce Batman ▐ Peter Spidey ▐ Thor Thor ▐ Diana Wonder Woman ▐ dtype: object
Adio, Iron Man.
Nu vă supărați când vă spun că toate operațiunile de mai sus funcționează pe Serie, ceea ce este foarte diferit de unele dintre stilul „returnează o copie modificată” pe care l-am văzut recent. Prin urmare, toate aceste încercări sunt greșite:
alter_egos = del alter_egos['Tony'] <--- GREȘIT! alter_egos = alter_egos['Bruce'] = 'Batman' <--- GREȘIT! alter_egos = alter_egos['Diana'] = 'Wonder Woman' <--- GREȘIT!
Nu „schimbi o valoare și obții o serie nouă”; doar „schimbi”.
Accesarea după poziție
Un lucru puțin ciudat pe care îl puteți face cu o serie Pandas este să ignorați cheia (indexul) cu totul și, în schimb, să utilizați numărul perechii cheie/valoare pentru a specifica ce valoare doriți. Acest lucru mă face nesigur, deoarece într-adevăr nu există nicio „ordine” semnificativă pentru perechile cheie/valoare ale unui tablou asociativ. Cu toate acestea, în modul All Things To All People™, Pandas vă permite să faceți acest lucru.
Accesarea unei valori după poziție
Puteți cere valoarea (să spunem) „al doilea” super-erou. Pentru a face acest lucru, utilizați sintaxa cu denumirea bizară .iloc:
a_hero = alter_egos.iloc[1] print(a_hero) ▐ Spidey
Acest lucru este uneori util, așa că îl menționez pentru a fi complet. Numerele .iloc încep cu 0 (nu 1), așa cum este adevărat în Python.
Accesarea unei chei după poziție
În mod similar, puteți obține cheia (spre deosebire de valoare) perechii cheie/valoare într-o anumită poziție. Pentru a cere cheia „al doilea” super-erou, utilizați sintaxa .index:
a_secret_hero = alter_egos.index[1] print(a_secret_hero) ▐ Peter
(1) Pandas, care încearcă să fie All Things To All People™ (de toate pentru toți), vă va permite de fapt să aveți valori duplicate ale indexului într-o Serie. Ce face dacă ceri „valoarea” lui Peter, atunci, dacă există mai multe? Îți dă înapoi o altă Serie de diferiți supereroi Peter. Aceasta este o durere majoră, pentru că acum, atunci când căutați o valoare în Serie, nu știți dacă veți primi înapoi un singur articol sau o altă Serie, ceea ce înseamnă că trebuie să verificați pentru a vedea care este și apoi scrieți cod diferit pentru a gestiona cele două cazuri… Doar stai departe, departe de asta. Faceți toate cheile dvs. unice.
Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2024 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1
Lasă un răspuns