Home » Articole » Articole » Calculatoare » Programare » Python » Matrice asociative în Python – Seria Pandas

Matrice asociative în Python – Seria Pandas

postat în: Python 0

Următorul nostru truc este să reprezentăm tablouri asociative (revizuiți secțiunea 7.1, dacă aveți nevoie) în Python. Pentru a face acest lucru, vom folosi un alt pachet, care poartă numele adorabil „Pandas”:

import pandas as pd

Acest cod ar trebui să meargă în partea de sus a primei celule de notebook, chiar sub linia „import numpy as np”. Cele două merg mână în mână.

Apropo, așa cum au existat alte opțiuni în afară de NumPy ndarrays pentru a reprezenta matrice obișnuite, există și alte opțiuni în Python pentru matricele asociative. Natibul Python dict („dicționar”) este un candidat evident. Deoarece acest lucru nu va funcționa bine atunci când datele devin uriașe și pentru că folosirea Pandas acum va configura bine utilizarea tabelelor în următoarele capitole, vom folosi tipul de date din seria Pandas pentru matricele noastre asociative.

Seria Pandas

O serie este conceptual un set de perechi cheie-valoare. În mod normal, cheile sunt omogene, la fel și valorile, deși cheile ar putea fi de alt tip decât valorile. Oricare dintre cele trei tipuri atomice este permis pentru oricare.

Oarecum confuz este faptul că pachetul Pandas numește cheile „index”, care este o suprapunere cu termenul pe care l-am folosit pentru matricele obișnuite. Totuși, nu este o pierdere totală, deoarece dacă te gândești din bine la asta, îți vei da seama că, într-un anumit sens, o matrice obișnuită este de fapt doar o matrice asociativă cu chei întregi consecutive. Oooo, profund. Dacă studiezi cele două jumătăți din Figura 11.1, cred că vei fi de acord.

Un tablou obișnuit și un tablou asociativFigura 11.1: Un tablou obișnuit și un tablou asociativ, care reprezintă aceleași informații.

Crearea de serii

Iată câteva modalități comune de a crea un obiect din seria Pandas în memorie.

Modul 1: creați o serie goală

Poate că primul sună prost, dar vom avea într-adevăr ocazia să începem cu o serie goală și apoi să îi adăugăm perechi cheie/valoare de acolo. Codul este simplu:

my_new_series = pd.Series()

Voilâ.

Modul 2: pd.Series([], index=[])

Ca și în cazul ndarray NumPy, putem enumera în mod explicit valorile pe care le dorim într-o serie nouă. De asemenea, trebuie să listăm valorile indexului (cheile). Sintaxa pentru a face acest lucru este:

alter_egos = pd.Series([‘Hulk’,’Spidey’,’Iron Man’,’Thor’],
index=[‘Bruce’,’Peter’,’Tony’,’Thor’])

Aceasta creează seria prezentată în Figura 11.2.

O serie Pandas în memorieFigure 11.2: O serie Pandas în memorie.

Aveți grijă să păstrați toate cutiile și bananele drepte. Rețineți că atât cheile, cât și valorile sunt în propriile seturi de casete.

Putem imprima serii (micuțe) pe ecran pentru a le inspecta conținutul:

print(alter_egos)

▐ Bruce Hulk
▐ Peter Spidey
▐ Tony Iron Man
▐ Thor Thor
▐ dtype: object

De asemenea, așa cum am mai făcut-o, ne putem întreba atât tipul general de alter_egos, cât și tipul de date subiacente pe care le conține:

print(type(alter_egos))
print(alter_egos.dtype)

▐ pandas.core.series.Series
▐ object

La fel ca anterior, „object” de aici este doar un mod confuz de a spune „str”. Nu citiți nimic mai mult de atât.

Modul 3: „Împachetarea” unei matrici

Matricele asociative și seriile Pandas pe care le-am folosit pentru a le implementa, sunt în mod inerent structuri de date unidimensionale. Aceasta este la fel ca și matricele NumPy pe care le-am folosit înainte. Seriile Pandas oferă, de asemenea, o mulțime de funcții pentru manipularea, interogarea, calcularea și chiar reprezentarea grafică a aspectelor conținutului lor. Sunt o mulțime de lucruri bogate pe lângă NumPy simplu.

Din acest motiv, este obișnuit să doriți să creați o serie care doar „învelește” (sau înglobează) un ndarray NumPy subiacent și oferă toate acele lucruri bogate.

Modul de a face acest lucru este simplu:

my_numpy_array = np.array([‘Ghost’,’Pumpkin’,’Vampire’,’Witch’])
my_pandas_enhanced_thang = pd.Series(my_numpy_array)

Apoi, puteți trata my_pandas_enhanced_thang ca pe o variabilă agregată obișnuită, care are operațiunile mai sofisticate din capitolul următor încorporate automat la ea. Cheile (valorile indexului) ale acestui thang vor fi pur și simplu numerele întregi de la 0 la 3.

Modul 4: pd.read_csv()

În cele din urmă, există citirea datelor dintr-un fișier text, care, așa cum am menționat în secțiunea 8.2, este de fapt cea mai comună. Datele se află de obicei în surse și fișiere externe mediului nostru de programare și vrem să facem tot ce ne stă în putință pentru a ne juca cu acest univers deschis.

Un format comun de date se numește CSV, care înseamnă valori separate prin virgulă. Fișierele în acest format sunt în mod normal denumite cu o extensie „.csv”. După cum sugerează și numele, liniile dintr-un astfel de fișier constau din valori separate prin virgule. De exemplu, să presupunem că există un fișier numit disney_rides.csv al cărui conținut arată astfel:

Pirates of the Carribean,25
Small World,20
Peter Pan,29

Acestea sunt timpul de așteptare actual estimat (în minute) pentru fiecare dintre aceste curse Disney World la un moment dat al zilei.

Pentru a citi acest lucru în Python, folosim funcția pd.read_csv(). Este puțin incomod, deoarece are mai multe argumente obligatorii dacă vrei să te ocupi de serii. Iată cum funcționează:

wait_times = pd.read_csv(‘disney_rides.csv’, index_col=0,
squeeze=True, header=None)

Cea mai mare parte a acestor exemple este doar pentru a memora deocamdată, nu pentru a înțelege pe deplin. Dacă sunteți curios, index_col=0 îi spune lui Pandas că prima (0) coloană – și anume, numele curselor – ar trebui tratată ca index pentru serie. header=None înseamnă „nu există un rând separat de antet în partea de sus a fișierului, Pandas, așa că nu încercați să îl tratați ca pe unu”. Dacă fișierul nostru .csv avea un rând rezumat în partea de sus, care conține etichete pentru cele două coloane, atunci am sări peste partea header=None. În cele din urmă, „squeeze=True” îi spune lui Pandas, „deoarece oricum este atât de subțire – doar două coloane – să lăsăm pd.read_csv() să ne returneze seria, mai degrabă decât un obiect DataFrame mai complex (care face obiectul capitolului 16) .”

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. © 2021 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Lucrul cu baze de date
Lucrul cu baze de date

Colecția ȘTIINȚA INFORMAȚIEI Lucrul cu bazele de date este astăzi printre cele mai căutate abilități IT. Acum puteți obține o bază de plecare în proiectarea și implementarea bazelor de date cu o abordare practică, ușor de înțeles. ”Lucrul cu baze … Citeşte mai mult

Nu a fost votat $3.99$7.99 Selectează opțiunile
Introducere în Business Intelligence
Introducere în Business Intelligence

Colecția ȘTIINȚA INFORMAȚIEI ”Introducere în Business Intelligence” oferă cititorilor informații cuprinzătoare despre business intelligence, explorând toate aspectele importante ale inteligenței de afaceri în scenariul actual. Subiectele tratate se referă la abordările de bază ale business intelligence. Cartea își propune să … Citeşte mai mult

Nu a fost votat $2.99$4.80 Selectează opțiunile
Etica Big Data în cercetare
Etica Big Data în cercetare

Principalele probleme cu care se confruntă oamenii de știință în lucrul cu seturile mari de date (Big Data), evidențiind principale aspecte etice, luând în considerare inclusiv legislația din Uniunea Europeană. După o scurtă Introducere despre Big Data, secțiunea Tehnologia prezintă … Citeşte mai mult

Nu a fost votat $0.00$2.35 Selectează opțiunile

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *