Pandas
Last updated
Last updated
Să înțelegeți care e diferența dintre Numpy și Pandas.
Să știți cum să utilizați funcțiile din Pandas și metodele claselor pandas.Series, și pandas.DataFrame.
Să înțelegeți conceptele statistice - std, Q1,Q2,Q3.
Să știți cum să utilizați metodele de selectare din Pandas.
Să fiți capabile să curățiți o bază de date.
Să știți cum să modelați datele.
Am văzut mai devreme că librăria Numpy ne oferă libertatea de a lucra mai ușor cu mai multe dimensiuni decât listele de liste. Cu ajutorul oparțiilor vectorizate putem mai rapid și mai ușor să transformăm datele decât folosind loop-ul for
.
Totuși Numpy are câteva limitări:
Numpy nu oferă posibilitatea de a avea denumirile de coloane
Numpy permite de a avea doar un singur tip de date într-un array
Nu conține metode gata facute(pre-built) care să faciliteze procesul de analiză a datelor.
Limitările de mai sus sunt rezolvate de Pandas. Pandas nu este o ”înlocuire” a librăriei Numpy, ci mai degrabă e o extensie a lui Numpy. Codul din spatele funcțiilor și metodelor din Pandas se bazează pe libraria Numpy astfel multe din conceptele anterior învățate le vom regăsi și aici.
Pandas are 2 clase principale: pandas.Series și pandas.DataFrame.
Care este diferența dintre aceste două clase?
DataFrame-ul e o structură primară a librăriei Pandas, bi-dimensională și heterogenă.
Putem să construim un DataFrame utilizând o listă de liste sau un array.
0
1
2
3
0
1
2
3
4
1
5
6
7
8
2
9
10
11
12
Putem să utilizăm un dicționar în crearea unui DataFrame.
a
b
c
0
1
5
9
1
2
6
10
2
3
7
11
3
4
8
12
Clasa DataFrame are și un parametru cu care putem să specificăm numele coloanelor într-o listă. De data asta atribuim DataFrame-ul unei variabile.
a
b
c
d
0
1
2
3
4
1
5
6
7
8
2
9
10
11
12
Ce diferență este între primul, al doilea și al treilea tabel?
a
b
c
0
1
3
5
1
2
4
6
Obiectul Series este un ndarray cu o singură dimensiune.
Ca să instanțiem un obiect Series putem folosi o listă de valori.
Obiectul Series poate avea și un nume.
Un obiect Series poate fi și sintaxa de mai jos. Ce reprezintă sintaxa de mai jos?
Sintaxa de mai sus reprezintă cea mai simplă modalitate de a selecta o coloană dintr-un DataFrame.
Documentație:
a
b
c
d
0
1
2
3
4
1
5
6
7
8
2
9
10
11
12
Metoda to_numpy()
a clasei DataFrame convertește un obiect DataFrame într-un array.
Pentru a accesa un set de date, putem să folosim funcția read_csv() care primește ca argument path-ul, sau ”calea” spre fișierul CSV.
Această funcție ne returnează un DataFrame.
Documentație: pandas.read_csv()
Metoda head(), aparține clasei DataFrame. Această metodă ne permite să vizualizăm implicit primele 5 rânduri din tabel.
Însă putem să vizualizăm și mai multe rânduri dacă specificăm acest parametru.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
Metoda tail() este opusul metodei head().
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
195
17899948
Rebecca
Daphne du Maurier
328317
4.23
430751
22157
449p
2013
Classics
196
32261
Tess of the D'Urbervilles
Thomas Hardy
88562
3.80
233821
8491
518p
2003
Classics
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
4.25
731027
20622
1276p
2003
Classics
198
17245
Dracula
Bram Stoker
636610
4.00
907768
24683
488p
1986
Classics
199
662
Atlas Shrugged
Ayn Rand
247445
3.69
348149
17053
1168p
1999
Classics
Metoda to_csv()
returnează un fișier CSV. Această metodă primește ca parametri numele fișierului. De asemenea specificăm parametrul index
cu valoarea False
ca să nu anuleze indexul exitent din DataFrame transformându-l într-o coloană și să indexeseze din nou rândurile.
Aceste atribute ne ajută să investigăm DataFrame-ului.
Atributul columns
ne returnează o listă cu numele coloanelor din tabel.
Atributul dtypes
ne ajută să investigăm ce tipuri de date avem în tabel.
Atributul index
ne returnează intervalul de indecși conținut de DataFrame-ul books
.
Atributul shape ne returnează un tuplu care conține numărul de rânduri și numărul de coloane.
Metoda describe()
ne oferă informații statistice despre toate coloanele numerice.
Id
Score
Rating
Rating Count
Review Count
Year
count
2.000000e+02
2.000000e+02
191.000000
2.000000e+02
200.000000
200.000000
mean
4.031287e+06
3.704144e+05
4.111152
1.001351e+06
28013.625000
2002.105000
std
1.050539e+07
4.211493e+05
0.234172
1.002018e+06
25818.271576
9.026147
min
1.000000e+00
7.125500e+04
3.410000
8.387000e+03
131.000000
1963.000000
25%
5.123500e+03
1.046262e+05
3.970000
3.484505e+05
10847.000000
1999.750000
50%
2.424650e+04
2.029340e+05
4.120000
6.543600e+05
19901.000000
2003.000000
75%
2.756655e+05
4.999625e+05
4.270000
1.299898e+06
36667.500000
2006.000000
max
5.289286e+07
2.959668e+06
4.620000
6.808998e+06
169961.000000
2019.000000
Ce este std sau abaterea standardă (standard deviation)?
Deja sunteți familiare cu histograma, știți ce înseamnă distribuția valorilor într-o histogramă. Un aspect interesant al distribuției este variabilitatea (variability) valorilor.
Ca sa ne dăm seama cât de mult variază valorile într-o distribuție trebuie să investigăm distanța valorilor de la media distribuției.
Ulterior însumând aceste distanțe, și împărțind totalul la numărul de valori din distribuție vom obține o medie aritmetică a distanțelor care ne va indica cât de mult variază valorile într-o distribuție.
De ce am obținut suma = 0?
Din câte observăm suma totală a volorilor sub medie este egală cu suma totală a valorilor deasupra mediei.
Ce trebuie să facem ca să nu obținem suma = 0?
Valoarea de mai sus, 2.75, reprezintă distanța medie absolută (mean absolute distance), sau în statistică se mai numește abaterea medie absolută (mean absolute deviation).
O altă soluție de a evita suma = 0, e să ridicăm la puterea a doua toate distanțele.
Care este avantajul de a folosi valori pătratice față de valori absolute?
Valoarea 24.75 reprezintă distanța medie patratică (mean squared distance) sau variația (variance) valorilor într-o distribuție.
Acum această valoare trebuie să fie standardizată sau adusă la "starea normală" și vom face asta prin extragerea rădăcinii pătrate.
Valoarea ~4.97 am obținut-o extragând rădăcina pătrată din distanța medie pătratică, această valoare reprezintă abaterea standardă (standard deviation).
La ce ne ajută abaterea standardă?
Imaginați-vă că vreți să cumpărați o casă. Și prețul acestei case este de 60000 de euro. Vă întrebați dacă această casă este scumpă, sau nu, față de restul caselor de pe stradă. Să presupunem că avem această listă de prețuri ale caselor de pe această stradă.
Unde se plasează 60000 de euro? Între axa verde și roșie, sau între axa roșie și galbenă? Observăm că 60000 de euro este un preț ușor mai mic decât media prețurilor caselor de pe stradă dar totuși nu e un preț foarte mic pentru că nu trece peste limita unei abateri standarde sub medie.
Surse adiționale:
Ce sunt percentilele?
Percentila este o mărime care se folosește în statistică și indică câte procente din populația distribuită crescător după o anumită valoare se află până la aceasta.
De exemplu până la a 10 percentilă se află 10 procente din populație. După a 10-a percentilă se află 90% din populație.
A 25-a, 50-a, 75-a percentilă se mai numesc cuartile (quartiles): Q1, Q2, Q3.
Resurse utile: Video varianta, standard deviation
Metoda value_counts() returnează frecvența valorilor dintr-o coloană.
Documentație: Series.value_counts()
Conceptul de metode înlănțuite permite aplicarea mai multor metode una peste rezultatul alteia într-o linie de cod.
Pandas are încorporate metode de plotare bazate pe metodele din matplotlib.
Loc este o proprietate prezentă și la clasa DataFrame, și la clasa Series. Această proprietate permite selectarea elementelor din DataFrame sau Series prin indexare.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
Name
Score
0
The Perks of Being a Wallflower
745557
1
The Kite Runner
427631
2
A Walk to Remember
104093
3
Goodnight Moon
93488
4
Moby-Dick or, the Whale
200963
...
...
...
195
Rebecca
328317
196
Tess of the D'Urbervilles
88562
197
The Count of Monte Cristo
116688
198
Dracula
636610
199
Atlas Shrugged
247445
200 rows × 2 columns
Id
Name
Authour
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
1
77203
The Kite Runner
Khaled Hosseini
2
35545737
A Walk to Remember
Nicholas Sparks
3
32929
Goodnight Moon
Margaret Wise Brown
4
153747
Moby-Dick or, the Whale
Herman Melville
...
...
...
...
195
17899948
Rebecca
Daphne du Maurier
196
32261
Tess of the D'Urbervilles
Thomas Hardy
197
7126
The Count of Monte Cristo
Alexandre Dumas
198
17245
Dracula
Bram Stoker
199
662
Atlas Shrugged
Ayn Rand
200 rows × 3 columns
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
6
35031085
Frankenstein: The 1818 Text
Mary Wollstonecraft Shelley
430783
3.80
1132408
31805
288p
2018
Classics
Id
Name
Authour
Score
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
1
77203
The Kite Runner
Khaled Hosseini
427631
2
35545737
A Walk to Remember
Nicholas Sparks
104093
Name
Authour
Score
2
A Walk to Remember
Nicholas Sparks
104093
3
Goodnight Moon
Margaret Wise Brown
93488
4
Moby-Dick or, the Whale
Herman Melville
200963
Iloc este la fel o proprietate a claselor DataFrame și Series. Cu iloc putem să selectăm coloanele sau rândurile doar după indecșii numerici.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
6
35031085
Frankenstein: The 1818 Text
Mary Wollstonecraft Shelley
430783
3.80
1132408
31805
288p
2018
Classics
Name
Authour
Score
Rating
2
A Walk to Remember
Nicholas Sparks
104093
4.18
3
Goodnight Moon
Margaret Wise Brown
93488
4.28
4
Moby-Dick or, the Whale
Herman Melville
200963
3.50
5
City of Bones (The Mortal Instruments, #1)
Cassandra Clare
713154
4.10
6
Frankenstein: The 1818 Text
Mary Wollstonecraft Shelley
430783
3.80
7
Oh, the Places You'll Go!
Dr. Seuss
78563
4.36
8
One Hundred Years of Solitude
Gabriel García Márquez
613129
4.08
9
The Complete Stories and Poems
Edgar Allan Poe
213957
4.38
O metodă pentru a selecta condiționat este folosirea indexării cu valori boolean.
Cu ajutorul Seriei vom indexa în DataFrame doar rândurile cu valoarea True.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
20
4214
Life of Pi
Yann Martel
485940
3.91
1309184
46807
460p
2006
Fiction
24
12232938
The Lovely Bones
Alice Sebold
508104
3.81
1977504
40105
372p
2006
Fiction
28
41865
Twilight (Twilight, #1)
Stephenie Meyer
1452846
3.59
4839503
102492
501p
2006
Young Adult
51
7763
The Joy Luck Club
Amy Tan
81845
3.93
590245
9020
288p
2006
Fiction
64
28187
The Lightning Thief (Percy Jackson and the Oly...
Rick Riordan
573399
4.25
1922316
58816
375p
2006
Fantasy
69
14891
A Tree Grows in Brooklyn
Betty Smith
307886
4.27
380787
20170
496p
2006
Classics
77
1
Harry Potter and the Half-Blood Prince (Harry ...
J.K. Rowling
155771
4.57
2363861
38035
652p
2006
Fantasy
86
99561
Looking for Alaska
John Green
138376
NaN
1084064
55417
221p
2006
Young Adult
87
6288
The Road
Cormac McCarthy
298802
3.97
700221
45005
241p
2006
Fiction
88
71728
Jonathan Livingston Seagull
Richard Bach
80428
3.84
196608
7693
112p
2006
NaN
90
1381
The Odyssey
Homer
488592
3.77
844968
11868
541p
2006
Classics
113
12067
Good Omens: The Nice and Accurate Prophecies o...
Terry Pratchett
90852
4.25
520130
26583
491p
2006
Fantasy
123
19063
The Book Thief
Markus Zusak
1343484
4.37
1779061
111157
552p
2006
NaN
125
37415
Their Eyes Were Watching God
Zora Neale Hurston
95935
3.92
253858
12964
219p
2006
Classics
153
28186
The Sea of Monsters (Percy Jackson and the Oly...
Rick Riordan
82179
4.24
717600
25902
279p
2006
Fantasy
161
24583
The Adventures of Tom Sawyer
Mark Twain
146031
3.91
739818
9690
244p
2006
Classics
175
6514
The Bell Jar
Sylvia Plath
345502
4.01
573995
22336
294p
2006
Classics
177
3636
The Giver (The Giver, #1)
Lois Lowry
407467
4.13
1729590
64308
208p
2006
Young Adult
182
968
The Da Vinci Code (Robert Langdon, #2)
Dan Brown
867513
3.85
1887312
46482
489p
2006
Fiction
190
2657
To Kill a Mockingbird
Harper Lee
2235010
4.28
4377280
89241
324p
2006
Classics
Indexarea boolean de fapt e selectarea unui slice de rânduri.
Variabila bool_2006 e doar o variabilă. Putem să scriem expresia boolean direct în sintaxa de selectare.
bool_2006 = books['Year'] == 2006
expresia boolean: books['Year'] == 2006
Ce alte expresii boolean mai cunoaștem? Putem să le folosim ca și condiții de selectare?
Putem să indexăm și cu o expresii logice. Vom selecta toate cărțile din 2006 care au ratingul mai mare decât 4.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
64
28187
The Lightning Thief (Percy Jackson and the Oly...
Rick Riordan
573399
4.25
1922316
58816
375p
2006
Fantasy
69
14891
A Tree Grows in Brooklyn
Betty Smith
307886
4.27
380787
20170
496p
2006
Classics
77
1
Harry Potter and the Half-Blood Prince (Harry ...
J.K. Rowling
155771
4.57
2363861
38035
652p
2006
Fantasy
113
12067
Good Omens: The Nice and Accurate Prophecies o...
Terry Pratchett
90852
4.25
520130
26583
491p
2006
Fantasy
123
19063
The Book Thief
Markus Zusak
1343484
4.37
1779061
111157
552p
2006
NaN
153
28186
The Sea of Monsters (Percy Jackson and the Oly...
Rick Riordan
82179
4.24
717600
25902
279p
2006
Fantasy
175
6514
The Bell Jar
Sylvia Plath
345502
4.01
573995
22336
294p
2006
Classics
177
3636
The Giver (The Giver, #1)
Lois Lowry
407467
4.13
1729590
64308
208p
2006
Young Adult
190
2657
To Kill a Mockingbird
Harper Lee
2235010
4.28
4377280
89241
324p
2006
Classics
Vom selecta cărțile care sunt din anul 2006 sau care au ratingul mai mare decât 4.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
5
256683
City of Bones (The Mortal Instruments, #1)
Cassandra Clare
713154
4.10
1577035
60639
485p
2007
Fantasy
...
...
...
...
...
...
...
...
...
...
...
193
1885
Pride and Prejudice
Jane Austen
1942736
4.26
2905431
64486
279p
2000
Classics
194
37435
The Secret Life of Bees
Sue Monk Kidd
178535
4.05
1098795
30073
302p
2003
Fiction
195
17899948
Rebecca
Daphne du Maurier
328317
4.23
430751
22157
449p
2013
Classics
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
4.25
731027
20622
1276p
2003
Classics
198
17245
Dracula
Bram Stoker
636610
4.00
907768
24683
488p
1986
Classics
144 rows × 10 columns
Vom selecta toate cărțile care nu au fost editate în anul 2006.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
...
...
...
...
...
...
...
...
...
...
...
195
17899948
Rebecca
Daphne du Maurier
328317
4.23
430751
22157
449p
2013
Classics
196
32261
Tess of the D'Urbervilles
Thomas Hardy
88562
3.80
233821
8491
518p
2003
Classics
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
4.25
731027
20622
1276p
2003
Classics
198
17245
Dracula
Bram Stoker
636610
4.00
907768
24683
488p
1986
Classics
199
662
Atlas Shrugged
Ayn Rand
247445
3.69
348149
17053
1168p
1999
Classics
180 rows × 10 columns
Mai jos avem toată lista de genuri de cărți pe care le avem în setul de date books.
Vrem să schimbăm valoarea 'Science Fiction' în 'SciFi'.
Avem DataFrame-ul df.
a
b
c
d
0
1
2
3
4
1
5
6
7
8
2
9
10
11
12
Creăm o coloană în DataFrame-ul df care să conțină valori doar de 1.
a
b
c
d
e
0
1
2
3
4
1
1
5
6
7
8
1
2
9
10
11
12
1
a
b
c
d
e
de
0
1
2
3
4
1
5
1
5
6
7
8
1
9
2
9
10
11
12
1
13
Operații:
series_a + series_b
- Adunare
series_a - series_b
- Scădere
series_a * series_b
- înmulțire
series_a / series_b
- Împărțire
Putem să folosim și alte operațiuni matematice.
a
b
c
d
e
de
f
0
1
2
3
4
1
5
1024
1
5
6
7
8
1
9
134217728
2
9
10
11
12
1
13
106993205379072
Concatenare.
A
B
0
a
b
1
c
d
2
e
f
A
B
C
0
a
b
ab
1
c
d
cd
2
e
f
ef
Convențional numele coloanelor din Pandas trebuie sa fie în formatul snake_case
.
Pentru a modifica numele coloanelor folosim metoda rename()
în care specificăm la parametrul columns
un dicționar în care cheile sunt numele coloanelor existente, iar valorile sunt numele coloanelor propuse.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
...
...
...
...
...
...
...
...
...
...
...
195
17899948
Rebecca
Daphne du Maurier
328317
4.23
430751
22157
449p
2013
Classics
196
32261
Tess of the D'Urbervilles
Thomas Hardy
88562
3.80
233821
8491
518p
2003
Classics
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
4.25
731027
20622
1276p
2003
Classics
198
17245
Dracula
Bram Stoker
636610
4.00
907768
24683
488p
1986
Classics
199
662
Atlas Shrugged
Ayn Rand
247445
3.69
348149
17053
1168p
1999
Classics
200 rows × 10 columns
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
...
...
...
...
...
...
...
...
...
...
...
195
17899948
Rebecca
Daphne du Maurier
328317
4.23
430751
22157
449p
2013
Classics
196
32261
Tess of the D'Urbervilles
Thomas Hardy
88562
3.80
233821
8491
518p
2003
Classics
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
4.25
731027
20622
1276p
2003
Classics
198
17245
Dracula
Bram Stoker
636610
4.00
907768
24683
488p
1986
Classics
199
662
Atlas Shrugged
Ayn Rand
247445
3.69
348149
17053
1168p
1999
Classics
200 rows × 10 columns
Dar atunci când avem un tabel cu vreo 80 de coloane cărora trebuie să le modificăm numele. Ar trebui să creăm un dicționar manual prea mare.
Id
Name
Authour
Score
Rating
Rating Count
Review Count
Page Count
Year
Genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
Sau o alternativă ar putea fi să utilizăm metodele Clasei String
. De exemplu metoda lower()
, transformă toate literele din string în litere mici.
Iar cu ajutorul metodei replace() putem să identificăm un caracter din string pe care vrem să-l înlocuim, îl menționăm ca prim parametru, iar al doilea parametru va fi caracterul cu care vrem să-l înlocuim. În cazul dat vom înlocui spațiul gol dintre 2 caractere cu ”_”
.
Acum să scriem o funcție care utilizează cele 2 metode string de mai sus.
Ca să schimbăm numele coloanelor vom folosi un loop for ca să iterăm prin books.columns
și vom apela funcția *clean_col*
pentru fiecare string books.columns
.
Iar acum atribuim lui books.columns lista creată cu numele noi de coloane.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
Metoda isnull()
ne returnează tabelul books
cu valori boolean.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
0
False
False
False
False
False
False
False
False
False
True
1
False
False
False
False
False
False
False
False
False
False
2
False
False
False
False
False
False
False
False
False
False
3
False
False
False
False
False
False
False
False
False
False
4
False
False
False
False
False
False
False
False
False
False
...
...
...
...
...
...
...
...
...
...
...
195
False
False
False
False
False
False
False
False
False
False
196
False
False
False
False
False
False
False
False
False
False
197
False
False
False
False
False
False
False
False
False
False
198
False
False
False
False
False
False
False
False
False
False
199
False
False
False
False
False
False
False
False
False
False
200 rows × 10 columns
Ștergerea datelor
Cea mai ușoară abordare e să ștergem datele lipsă. Putem să ștergem datele lipsă utilizând metoda dropna().
Folosim librăria Seaborn ca să plotăm un grafic de tip heatmap, în care vedem cu culori deschise datele lipsă în dependență de coloane. Astfel putem să observăm anumite pattern-uri, de exemplu dacă datele lipsă din diferite coloane coincid după rânduri.
Atunci când vrem să ștergem coloanele cu date lipsă, trebuie să specificăm în metoda dropna()
parametrul axis
cu valoarea ”columns”
.
id
name
authour
score
rating_count
review_count
page_count
year
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
1219410
56409
213p
1999
1
77203
The Kite Runner
Khaled Hosseini
427631
2365531
72036
371p
2004
2
35545737
A Walk to Remember
Nicholas Sparks
104093
658664
12918
215p
2000
3
32929
Goodnight Moon
Margaret Wise Brown
93488
296501
5729
32p
2007
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
470744
15149
654p
2003
...
...
...
...
...
...
...
...
...
195
17899948
Rebecca
Daphne du Maurier
328317
430751
22157
449p
2013
196
32261
Tess of the D'Urbervilles
Thomas Hardy
88562
233821
8491
518p
2003
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
731027
20622
1276p
2003
198
17245
Dracula
Bram Stoker
636610
907768
24683
488p
1986
199
662
Atlas Shrugged
Ayn Rand
247445
348149
17053
1168p
1999
200 rows × 8 columns
Dacă vrem să ștergem rândurile cu datele lipsă care aparțin doar unei coloane anumite, menționăm în metoda dropna()
parametrul subset
care ia o listă de valori cu numele coloanelor care ne interesează.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
NaN
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
...
...
...
...
...
...
...
...
...
...
...
195
17899948
Rebecca
Daphne du Maurier
328317
4.23
430751
22157
449p
2013
Classics
196
32261
Tess of the D'Urbervilles
Thomas Hardy
88562
3.80
233821
8491
518p
2003
Classics
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
4.25
731027
20622
1276p
2003
Classics
198
17245
Dracula
Bram Stoker
636610
4.00
907768
24683
488p
1986
Classics
199
662
Atlas Shrugged
Ayn Rand
247445
3.69
348149
17053
1168p
1999
Classics
191 rows × 10 columns
O altă abordare este înlocuirea datelor lipsă cu valori.
Estimarea valorilor lipsă
Puteți să investigați setul de date și să estimați valorile lipsă bazându-vă pe dependențele față de valorile din alte coloane.
Dependența rating-ului față de celelalte valori este foarte mică, respectiv nu putem estima valorile lipsă după acest criteriu.
Înlocuirea cu media valorilor din coloană.
Metoda fillna() înlocuiește toate valorile NaN cu valoarea care ne-o dorim noi. În cazul dat va fi media aritmetică a valorilor din coloana ”rating”
.
Înlocuirea cu mediana valorilor din coloană.
Ce abordare să folosiți?
Depinde de scopul proiectului.
Dacă aveți nevoie de o acuratețe maximă în date pentru a efectua studii statistice, atunci este indicat ca datele să fie șterse.
Dacă aceste date trebuie sa le folosiți pentru a antrena un model în Machine Learning și setul de date este foarte mic, atunci puteți sa înlocuiți aceste date cu media sau mediana.
Înlocuiți cu media aritmetică atunci când distribuția este aproximativ normală, pentru că media și mediana se află la mijloc și aproape coincid, respectiv valorile lor nu se vor schimba foarte mult.
Atunci cand aveți o distribuție asimetrică, cu multe valori extreme, este indicat să folosiți mediana, pentru că în cazul dat mediana se va afla în zona unde se concentrează cele mai multe valori, iar media aritmetică este mai deplasată spre valorile extreme, astfel dacă înlocuim datele lipsa cu media aritmetică, aceasta va influența distribuția.
Dacă datele poti fi estimate pe baza dependențelor față de alți parametri din setul de date, atunci asta ar fi o soluție care ne garantează valori cât de cât apropiate de realitate.
În cazul nostru, vom opta pentru ștergerea datelor.
Crearea categoriei valorilor lipsă.
Observăm ca avem 14 valori NaN în coloana Genres. Când avem valori lipsă de tip categoriale este indicat ca ele să fie transformate într-o categorie a datelor lipsă. În cazul dat această categorie se va numi ”Unknown”
(Necunoscute).
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213p
1999
Unknown
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371p
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215p
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32p
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654p
2003
Classics
Librăria Pandas conține o mulțime de metode string vectorizate pe care noi le putem folosi ca să manipulăm datele de tip string
. Multe din ele îs similare cu metodele clasei String din Python.
Majoritatea metodelor string vectorizate sunt disponibile folosind accesorul Series.str
ceea ce înseamnă că noi le putem accesa adaugând str
între numele Seriei și numele metodei, conform sinatxei de mai jos:
Documentație: Metode string vectorizate
În cazul valorilor din coloana 'page_count'
, noi vrem să selectăm caracterul 'p'
și să-l înlocuim cu nimic, astfel încât să ne rămână în această coloană doar valori de tip integer. Acest lucru putem sa-l realizăm folosind metoda string str.replace()
.
Următorul pas e să transformăm aceste valori în valori de tip integer cu ajutorul metodei astype().
În dependeță de metoda de colectare a datelor variază consistența datelor în set. Deseori în set se pot găsi date care se repetă, acestea se numesc duplicate.
O metodă care ne ajută să le identificăm este duplicated()
. Această metodă are parametrul keep
care are valorile 'first'
, 'last'
sau False
.
Folosim valoarea 'first'
atunci cand vrem să selectăm toate duplicatele în afară de primul.
Folosim valoarea 'last'
atunci când vrem să selectăm toate duplicatele în afară de ultimul.
Folosim valoarea False
ca să selectăm toate duplicatele din setul de date.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
Documentaie: drop_duplicates
Separarea în grupuri
Aplicarea unei funcții asupra fiecărui grup
Combinarea rezultatelor într-o structură de date
Pandas are o operație built-in pentru aceste 3 procese de mai sus. Operația groupby
aplică procesul de ”separare-aplicare-combinare” asupra unui DataFrame și condensează acest proces în 2 pași: 1. Crează un obiect GroupBy 2. Aplică o funcție asupra obiectului GroupBy.
Obiectul GroupBy ne permite să separăm DataFrame-ul în grupuri, dar într-un mod abstract. Nu se produce nici o operațiune până când asupra obiectului nu se aplică o funcțe.
Înainte de agregare(=unire), o să folosim metoda get_group()
care aparține clasei DataFrameGroupBy. Această metodă ne permite să selectăm datele pentru un grup anumit.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654
2003
Classics
6
35031085
Frankenstein: The 1818 Text
Mary Wollstonecraft Shelley
430783
3.80
1132408
31805
288
2018
Classics
9
23919
The Complete Stories and Poems
Edgar Allan Poe
213957
4.38
213034
2166
821
1984
Classics
11
1934
Little Women
Louisa May Alcott
340652
4.08
1637926
29378
449
2004
Classics
19
24213
Alice's Adventures in Wonderland & Through the...
Lewis Carroll
825095
4.06
446019
10321
239
2000
Classics
...
...
...
...
...
...
...
...
...
...
...
195
17899948
Rebecca
Daphne du Maurier
328317
4.23
430751
22157
449
2013
Classics
196
32261
Tess of the D'Urbervilles
Thomas Hardy
88562
3.80
233821
8491
518
2003
Classics
197
7126
The Count of Monte Cristo
Alexandre Dumas
116688
4.25
731027
20622
1276
2003
Classics
198
17245
Dracula
Bram Stoker
636610
4.00
907768
24683
488
1986
Classics
199
662
Atlas Shrugged
Ayn Rand
247445
3.69
348149
17053
1168
1999
Classics
68 rows × 10 columns
Acum să grupăm aceste grupuri folosind metoda sum()
.
id
score
rating
rating_count
review_count
page_count
year
genres
Childrens
1043945
3097363
47.19
5538095
97202
878
21933
Classics
207659489
27940853
270.39
60793160
1445289
30084
136033
Cultural
7144
748386
4.22
604962
18302
671
2002
Fantasy
61867472
10901437
117.11
41654719
943451
14352
54131
Fiction
134737368
10567705
139.38
32195941
1096432
14056
68111
Historical
365729
681659
12.48
1491980
59886
1608
5994
Horror
1035120
855307
16.81
2934501
77510
3270
7961
Mystery
16299
157229
4.26
776718
31245
264
2004
Nonfiction
195043
355939
11.74
2713505
94842
921
6001
Plays
1423
107208
4.44
8387
131
137
1994
Poetry
2547
86141
4.23
226839
9199
127
2010
Romance
69193868
330261
8.28
1960017
32645
442
4000
SciFi
45529435
2265723
17.11
3493204
98022
2020
8032
Sequential Art
472331
114982
4.36
479760
13770
416
2005
Unknown
115383431
4698484
57.26
8797566
390736
6117
28052
Young Adult
142467241
7889683
65.97
25512111
881068
6718
32141
Folosim metoda size()
când vrem să aflăm dimensiunea fiecărui grup.
size
genres
Childrens
11
Classics
68
Cultural
1
Fantasy
27
Fiction
34
Historical
3
Horror
4
Mystery
1
Nonfiction
3
Plays
1
Poetry
1
Romance
2
SciFi
4
Sequential Art
1
Unknown
14
Young Adult
16
size
reviews_max
genres
Childrens
11
17375
Classics
68
89241
Cultural
1
18302
Fantasy
27
108606
Fiction
34
84112
Putem să grupăm datele după mai multe coloane.
id
score
rating
rating_count
review_count
page_count
genres
year
Childrens
1964
370493.0
1.012345e+06
4.380
882195.000000
17375.0
64.000000
1985
233093.0
1.188860e+05
4.170
411113.000000
5702.0
61.000000
1988
23772.0
4.941850e+05
4.300
595769.000000
9208.0
62.000000
1990
191139.0
7.856300e+04
4.360
318637.000000
5158.0
44.000000
1994
4948.0
1.360590e+05
4.300
384386.000000
7754.0
26.000000
1998
23886.0
2.120750e+05
4.335
445791.000000
9979.5
156.000000
2000
19543.0
4.998120e+05
4.220
794735.000000
11579.0
37.000000
2004
113946.0
9.734000e+04
4.370
320590.000000
3146.0
64.000000
2005
6310.0
1.425350e+05
4.140
642587.000000
11592.0
176.000000
2007
32929.0
9.348800e+04
4.280
296501.000000
5729.0
32.000000
Classics
1963
332613.0
3.467220e+05
4.190
618823.000000
10614.0
325.000000
1972
485894.0
1.381860e+05
3.820
613496.000000
16702.0
201.000000
1976
70401.0
1.399490e+05
3.620
340371.000000
14644.0
307.000000
1981
52036.0
2.697250e+05
4.030
563652.000000
16851.0
152.000000
1984
23919.0
2.139570e+05
4.380
213034.000000
2166.0
821.000000
1986
17245.0
6.366100e+05
4.000
907768.000000
24683.0
488.000000
1987
24280.0
8.039670e+05
4.170
670386.000000
17090.0
1463.000000
1989
49552.0
1.540520e+05
3.980
681177.000000
22324.0
123.000000
1990
338798.0
7.695700e+04
3.730
107514.000000
6603.0
783.000000
1995
83451.0
2.219493e+05
3.980
372193.666667
13313.0
427.666667
Atunci când vrem să aplicăm mai multe metode asupra grupurilor putem folosi metoda agg()
.
id
score
rating
rating_count
review_count
page_count
year
genres
Childrens
1043945
3097363
47.19
5538095
97202
878
21933
Classics
207659489
27940853
270.39
60793160
1445289
30084
136033
Cultural
7144
748386
4.22
604962
18302
671
2002
Fantasy
61867472
10901437
117.11
41654719
943451
14352
54131
Fiction
134737368
10567705
139.38
32195941
1096432
14056
68111
Historical
365729
681659
12.48
1491980
59886
1608
5994
Horror
1035120
855307
16.81
2934501
77510
3270
7961
Mystery
16299
157229
4.26
776718
31245
264
2004
Nonfiction
195043
355939
11.74
2713505
94842
921
6001
Plays
1423
107208
4.44
8387
131
137
1994
Poetry
2547
86141
4.23
226839
9199
127
2010
Romance
69193868
330261
8.28
1960017
32645
442
4000
SciFi
45529435
2265723
17.11
3493204
98022
2020
8032
Sequential Art
472331
114982
4.36
479760
13770
416
2005
Unknown
115383431
4698484
57.26
8797566
390736
6117
28052
Young Adult
142467241
7889683
65.97
25512111
881068
6718
32141
sum
mean
amax
genres
Childrens
3097363
281578.454545
1012345
Classics
27940853
410894.897059
2235010
Cultural
748386
748386.000000
748386
Fantasy
10901437
403756.925926
2603171
Fiction
10567705
310814.852941
867513
Historical
681659
227219.666667
388909
Horror
855307
213826.750000
386882
Mystery
157229
157229.000000
157229
Nonfiction
355939
118646.333333
134797
Plays
107208
107208.000000
107208
Poetry
86141
86141.000000
86141
Romance
330261
165130.500000
226168
SciFi
2265723
566430.750000
1051406
Sequential Art
114982
114982.000000
114982
Unknown
4698484
335606.000000
1343484
Young Adult
7889683
493105.187500
2959668
Putem să creăm propria noastră funcție și s-o aplicăm asupra grupurilor.
diff_min_max
genres
Childrens
0.24
Classics
0.97
Cultural
0.00
Fantasy
0.72
Fiction
0.68
Historical
0.34
Horror
0.34
Mystery
0.00
Nonfiction
0.55
Plays
0.00
Poetry
0.00
Romance
0.08
SciFi
0.14
Sequential Art
0.00
Unknown
0.53
Young Adult
0.89
Documentație: Group by
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213
1999
Unknown
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371
2004
Fiction
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215
2000
Romance
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32
2007
Childrens
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654
2003
Classics
Vrem să categorizăm cărțile din setul nostru de date în cărți mici, medii și mari în dependență de numărul lor de pagini.
Putem să aplicăm asupra datelor o instrucțiune foarte specifică cu ajutorul metodei map()
, care aparține clasei Series.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
book_size
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213
1999
Unknown
Medium
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371
2004
Fiction
Medium
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215
2000
Romance
Medium
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32
2007
Childrens
Small
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654
2003
Classics
Large
În cazul în care vrem să avem mai mulți parametri în funcția noastră vom utiliza metoda apply()
a clasei Series. Face același lucru ca și metoda map()
, doar că acceptă mai mulți parametri.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
book_size
review_number
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213
1999
Unknown
Medium
Large
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371
2004
Fiction
Medium
Large
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215
2000
Romance
Medium
Medium
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32
2007
Childrens
Small
Small
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654
2003
Classics
Large
Medium
Mai jos avem o funcție care va transforma toate datele din coloană în procentaje față de valoarea maximă din aceeași coloană.
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
book_size
review_number
score%
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213
1999
Unknown
Medium
Large
25.190562
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371
2004
Fiction
Medium
Large
14.448614
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215
2000
Romance
Medium
Medium
3.517050
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32
2007
Childrens
Small
Small
3.158733
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654
2003
Classics
Large
Medium
6.790052
id
name
authour
score
rating
rating_count
review_count
page_count
year
genres
book_size
review_number
score%
rating_count%
0
22628
The Perks of Being a Wallflower
Stephen Chbosky
745557
4.20
1219410
56409
213
1999
Unknown
Medium
Large
25.190562
17.908802
1
77203
The Kite Runner
Khaled Hosseini
427631
4.30
2365531
72036
371
2004
Fiction
Medium
Large
14.448614
34.741250
2
35545737
A Walk to Remember
Nicholas Sparks
104093
4.18
658664
12918
215
2000
Romance
Medium
Medium
3.517050
9.673435
3
32929
Goodnight Moon
Margaret Wise Brown
93488
4.28
296501
5729
32
2007
Childrens
Small
Small
3.158733
4.354547
4
153747
Moby-Dick or, the Whale
Herman Melville
200963
3.50
470744
15149
654
2003
Classics
Large
Medium
6.790052
6.913558
score%
rating_count%
count
191.000000
191.000000
mean
12.524109
14.546617
std
14.346202
14.907528
min
2.407534
0.123175
25%
3.556919
4.953056
50%
6.923243
9.515218
75%
16.792373
18.754470
max
100.000000
100.000000
Pentru a putea aplica o funcție specifică asupra mai multor coloane vom folosi metoda applymap()
care aparține clasei Dataframe.
score%
rating_count%
0
Large
Medium
1
Medium
Large
2
Small
Medium
3
Small
Small
4
Medium
Medium
...
...
...
195
Medium
Medium
196
Small
Small
197
Small
Medium
198
Large
Medium
199
Medium
Medium
191 rows × 2 columns
Clasa DataFrame la fel are o metodă apply()
care transformă datele pe o axă fie că e Axa 1 sau Axa 0(column-wise, row-wise) a unui DataFrame, spre deosebire de celelalte metode: Series.map()
, Series.apply()
și DataFrame.applymap()
care transformă element cu element(elemnt-wise).
score%
rating_count%
Large
40
43
Medium
67
99
Small
84
49
Funcția concat() concatenează 2 tabele pe axa 0 sau pe axa 1.
id
elev
nota
0
1
Marc
9
1
2
Mioara
10
2
3
Maxim
7
id
elev
nota
0
4
Monica
7
1
5
Maxim
9
2
6
Maia
8
id
elev
nota
0
1
Marc
9
1
2
Mioara
10
2
3
Maxim
7
3
4
Monica
7
4
5
Maxim
9
5
6
Maia
8
materie
clasa
0
Matematica
5
1
L.Romana
7
2
Informatica
6
3
Desen
9
4
Fizica
7
5
Istorie
10
id
elev
nota
materie
clasa
0
1
Marc
9
Matematica
5
1
2
Mioara
10
L.Romana
7
2
3
Maxim
7
Informatica
6
3
4
Monica
7
Desen
9
4
5
Maxim
9
Fizica
7
5
6
Maia
8
Istorie
10
Ce s-ar fi întâmplat dacă în tabelul materii
ar mai fi existat un rând?
id
nume
absente
0
3
Maxim
30
1
6
Maia
0
2
2
Mioara
57
3
1
Marc
124
4
5
Maxim
0
5
7
Marica
21
id_x
elev
nota
materie
clasa
id_y
nume
absente
0
1
Marc
9
Matematica
5
1.0
Marc
124.0
1
2
Mioara
10
L.Romana
7
2.0
Mioara
57.0
2
3
Maxim
7
Informatica
6
3.0
Maxim
30.0
3
3
Maxim
7
Informatica
6
5.0
Maxim
0.0
4
4
Monica
7
Desen
9
NaN
NaN
NaN
5
5
Maxim
9
Fizica
7
3.0
Maxim
30.0
6
5
Maxim
9
Fizica
7
5.0
Maxim
0.0
7
6
Maia
8
Istorie
10
6.0
Maia
0.0
id
elev
nota
materie
clasa
nume
absente
0
1
Marc
9
Matematica
5
Marc
124.0
1
2
Mioara
10
L.Romana
7
Mioara
57.0
2
3
Maxim
7
Informatica
6
Maxim
30.0
3
4
Monica
7
Desen
9
NaN
NaN
4
5
Maxim
9
Fizica
7
Maxim
0.0
5
6
Maia
8
Istorie
10
Maia
0.0
Ce observați?
Seaborn este o librărie a lui Python, de vizualizare bazată pe Matplotlib. Această librărie oferă grafice cu stiluri predefinite.
Accesând acest link puteți găsi galeria de grafice Seaborn și codul lor de implementare: Seaborn