Ce face pd.Series()
Series este structura de bază din pandas: o listă de valori de același tip, în care fiecare valoare are o etichetă. Etichetele formează index-ul. Dacă nu dai un index, pandas pune numerele 0, 1, 2, …
Când creezi un Series dintr-un dicționar, cheile devin index, iar valorile devin datele. Atributul name dă un nume seriei (devine numele coloanei dacă o pui într-un DataFrame), iar values returnează valorile fără etichete.
Fiecare coloană a unui DataFrame este un Series: df["nota"] returnează un Series cu indexul tabelului.
Parametri
| Parametru | Descriere |
|---|---|
data |
Valorile: o listă, un dicționar, un array NumPy sau o singură valoare (care se repetă pentru tot indexul). |
index |
Etichetele, în aceeași ordine ca valorile. Trebuie să aibă aceeași lungime ca data (când data e listă). |
dtype |
Tipul datelor, de exemplu "int64", "float64", "str". Implicit pandas îl deduce. |
name |
Numele seriei. |
copy |
Dacă se copiază datele primite. |
Ce returnează
Un obiect pd.Series.
Exemple
Exemplul 1: Din listă, cu index implicit
Fără index, etichetele sunt 0, 1, 2, 3. values dă valorile ca array NumPy, iar index dă etichetele.
import pandas as pd
note = pd.Series([9, 7, 10, 8])
print(note)
print(note.values)
print(note.index)
Rezultat
0 9
1 7
2 10
3 8
dtype: int64
[ 9 7 10 8]
RangeIndex(start=0, stop=4, step=1)
Exemplul 2: Din dicționar, cu nume
Cheile dicționarului devin index. Accesezi o valoare după etichetă, ca la dicționar.
import pandas as pd
vanzari = pd.Series({"ianuarie": 1200, "februarie": 950, "martie": 1430}, name="vânzări (lei)")
print(vanzari)
print(vanzari["martie"])
print(vanzari.name)
Rezultat
ianuarie 1200
februarie 950
martie 1430
Name: vânzări (lei), dtype: int64
1430
vânzări (lei)
Exemplul 3: Index propriu și operații pe toată seria
Operațiile se aplică fiecărei valori, fără buclă. O condiție între paranteze drepte păstrează doar valorile care o îndeplinesc.
import pandas as pd
pret = pd.Series([4.5, 7.0, 12.0], index=["pâine", "lapte", "cașcaval"], name="preț")
print(pret * 2)
print(pret[pret > 5])
print(pret.sum())
Rezultat
pâine 9.0
lapte 14.0
cașcaval 24.0
Name: preț, dtype: float64
lapte 7.0
cașcaval 12.0
Name: preț, dtype: float64
23.5
Greșeli frecvente
- Dai o listă și un
indexde lungimi diferite:pd.Series([1, 2, 3], index=["a", "b"])dăValueError. - Ceri o valoare după poziție cu
s[0]când indexul are etichete text. În pandas 3 primeștiKeyError: 0; pentru poziție foloseștes.iloc[0]. - Creezi seria dintr-un dicționar și dai și
index: pandas nu redenumește cheile, ci le alege pe cele dinindex, iar etichetele care lipsesc din dicționar primescNaN.
Comenzi înrudite
pd.DataFrame(): Creează un tabel cu rânduri și coloane, dintr-un dicționar de liste, dintr-o listă de dicționare sau dintr-o listă de liste.DataFrame.iloc: Selectează rânduri și coloane după poziție (0, 1, 2, …), ca la listele Python, cu interval care exclude capătul din dreapta.DataFrame.loc: Selectează rânduri și coloane după etichete (numele din index și numele coloanelor) și permite modificarea valorilor.unique() / nunique(): unique returnează valorile distincte dintr-o coloană, în ordinea apariției; nunique spune câte valori distincte sunt.