Documente Academic
Documente Profesional
Documente Cultură
pasdfghjklzxcvbnmqwertyuiopasdfghjkl
zxcvbnmqwertyuiopasdfghjklzxcvbnmq
Proiect Pachete Software
wertyuiopasdfghjklzxcvbnmqwertyuiop
EXCEL
asdfghjklzxcvbnmqwertyuiopasdfghjklz
Andreea-Alexandra Cîrnaru
Mădălina-Andreea Călin
xcvbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwertyuiop
asdfghjklzxcvbnmqwertyuiopasdfghjklz
xcvbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasafghjklzxcvbnmqwertyuiop
asdfghjklzxcvbnmqwertyuiopasdfghjklz
xcvbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwertyuiop
asdfghjklzxcvbnmrtyuiopasdfghjklzxcvb
nmqwertyuiopasdfghjklzxcvbnmqwerty
uiopasdfghjklzxcvbnmqwertyuiopasdfg
Cuprins
Introducere ...................................................................................................................................................... 3
Functii financiare ............................................................................................................................................ 4
Grafice............................................................................................................................................................. 7
Functii matematice .......................................................................................................................................... 9
Functii logice................................................................................................................................................. 10
Functii user-defined ...................................................................................................................................... 11
Scenarii .......................................................................................................................................................... 12
Goal Seek....................................................................................................................................................... 13
Solver............................................................................................................................................................. 14
Subtotal ......................................................................................................................................................... 15
Pivot Table..................................................................................................................................................... 16
2
Introducere
3
Functii financiare
1. Prima functie financiara este introdusa in fila de Investitii. Pentru firma prezentata am avut in
vedere idee de achizitionare a unui alt magazin pentru vanzarea produselor cosmetice. Astfel, am
apelat la realizarea unui depozit pentru investitie care va avea loc peste un an si jumatate.
Depozitul initial este considerat 8000 RON, cu o rata a dobanzii anuala de 5%, deci rata anuala a
dobanzii pentru 18 luni va fi de 0.416%, si o rata lunara de 1200 RON.
Metoda de calcul
Am calculat folosind functia FV(rata dobanzii,perioada,rata lunara, depozit initial).
Astfel, rata dobanzii va fi 5% impartit la 12, adica 0,416 si timp de un an si jumatate. Perioada va
fi de 18 luni, rata lunara va fi suma de 1200 RON, iar depozitul initial va porni de la 8000 RON.
2. Cea de a doua functie financiara a fost creata pentru a calcula valoarea neta a unei investitii, daca
valoarea initiala este de 13 000 RON, iar Rata inflatiei este de 4.6%. In plus, aceasta investitie va avea loc
daca in anul 2019 valoarea medie a venitului va fi de peste 5000 RON pe an. Tinand cont ca se va
achizitiona inca un centru comercial peste un an si jumatate, incepand cu anul 2020 se preconizeaza ca
venitul mediu pe luna dintr-un an va creste cu 5% fata de anul precedent.
Metoda de calcul
Am aplicat functia IF pentru a verifica daca venitul mediu este de peste 5000 lei.
Daca rezultatul va fi mai amre de 5000 lei, atunci in celula B13 va fi afisat venitul mediu, altfel va fi afisat
0.
Venitul mediu a fost calculat cu ajutorul pretului mediu si al vanzarilor medii realizate de angajati.
4
Pentru a calcula valoarea neta a investitiei am folosit functia NPV(rata inflatiei, valoare 1, valoare 2,...).
Deoarece valoarea initiala este de 13000, in interiorul functiei NPV vom folosi semnul -, celelalte valori
pastrandu-se cu +. Rata inflatiei este calculata in valoare absoluta, deoarece este in procente. Urmatoarele 5
valori din functie NPV reprezinta valorile calculate pe fiecare an, din 2019 pana in 2023. Astfel, pentru
fiecare an, venitul mediu preconizat este calculat ca
venitul din anul anterior marit cu 5%.
3. Am realizat o foaie de calcul in care am introdus angajatii si vechimea lor in firma, precum si
numarul de produse vandute pe luna. Astfel, in functie de vechime, se vor acorda urmatoarele
sporuri:
- pentru o vechime între 1 si 3 ani sporul reprezinta 2% din salariu;
- pentru o vechime între 3 si 5 ani sporul reprezinta 3% din salariu;
- pentru o vechime între 5 si 7 ani sporul este de 3.5% din salariu;
5
La fel, am calculat cu ajutorul unei functii, sporul de vechime pentru produsele vandute, astfel:
- pentru 5-20 produse vandute, se aplica un spor de 5%
- pentru 20-45 produse vandute, se aplica un spor de 10%
- pentru 45-60 produse vandute, se aplica un spor de 15%
- pentru 60-60 produse vandute, se aplica un spor de 20%
Metoda de calcul
Am realizat calculul pentru comisionul total acordat, pe baza celor doua criterii de mai sus si am
calculat salariul total pe care il primesc angajatii firmei.
Total comision acordat este calculat astfel:
Spre exemplu, in cazul primului angajat,am adunat comisionul din coloana D2 si F2 in valoare
absoluta si am inmultit cu salariul, pentru a obtine totalul de bonsu acordat. Mai departe, pentru a
calcula totalul de salariu, am folosit expresia:
Rezultatul se poate vedea in coloana Total salariu, salariul inregistrand cresteri in cazul fiecarui
angajat. In cazul celor cu vechime mai mare, salariu creste mai mult, deoarece si rezultatele
vanzarilor lor este mai bun.
6
Grafice
1. Conform investitiilor prezentate mai sus, am luat in calcul preconizarea unei cresteri a venitului
mediu pe an. Astfel, incepand cu anul 2019 si pana in anul 2023 cand se va termina investitia,
venitul mediu va creste cu 5% fata de anul precedent. Am realizat un grafic ce va demonstra
evolutia acestui venit mediu si implicit, a firmei. Astfel ca incepand din anul 2022 venitul mediu
va creste peste 6000 RON.
Se poate
observa faptul ca angajatul cu experienta cea mai mica are si cea mai slaba performanta, pe cand
cei care au capatat cativa ani de experienta in vanzarea produselor au reusit sa vanda peste 40 de
produse.
7
3. Cu ajutorul celui de al treilea garfic, am realizat o analiza a preferintelor clientilor, in functie de
achizitiile lor. Ca si prim pas, am calculat numarul de clienti care prefera un anumit brand de
produse din magazin.
Metoda de calcul
Pentru a calcula numarul de consumatori, am folosit functia COUNTIF care numara celulele, daca
numele de brand este egal cu fiecare coloana din stanga.
8
Dupa cum se poate observa, brandurile
MAC, Melkior si Burjois sunt printre
cele mai preferate de consumatori, Farsali
fiind cel mai putin preferat.
Functii matematice
In foaia de calcul Formula matematica vom calcula functia matematica. Pentru fiecare dintre
produsele cosmetice comercializate de firma se aplica cota TVA in valoare de 19% pentru a se calcula atat
valoarea TVA a fiecarui produs, cat si pretul cu TVA al acestora. In tabelul de mai jos avem preturile.
Metoda de calcul
Pentru a calcula TVA-ul, se aplica formula Gi*$B$27, cu i de la 2 la 25, folosind valoarea absoluta
a TVA-ului din coloana B27.
Apoi, pentru a calcula pretul cu TVA, folosim formula Gi+Hi, cu i de la 2 la 25.
9
Functii logice
Pentru aplicarea functiei logice vom folosi foaia de calcul Calcul discount + pret. Unele branduri
acorda discount de fidelitate clientilor lor care au o anumita vechime pentru a-i stimula in continuare, iar
pentru a calcula discount-ul si pretul cu discount am folosit functia logica IF.
Folosind functia logica, am calculat discount-ul si pretul cu discount pentru fiecare brand in parte.
Apoi, pentru a calcula coloana Pret cu discount, am folosit functia Ii-Ji, cu i de la 2 la 25.
10
Functii user-defined
Pentru fiecare produs se cunoaste data fabricarii, precum si data expirarii, putand sa calculam astfel
valabilitatea acestora (in luni). Firma acorda reduceri in functie de valabilitatea produselor.
Sa se calculeze pretul cu reducerile respective.
Metode de calcul:
Pentru a calcula reducerea, am creat o functia Reducere in Visual Basic, ce are ca parametri atat
pretul, cat si valabilitatea (in luni).
11
Reducere = 0.15 * pret
Else
Reducere = 0.05 * pret
End If
End If
End If
End If
End Function
Scenarii
1. Presupunand ca rata inflatiei creste cu 10%, cum se va modifica valoarea neta a investitiei?
Metoda de calcul:
Folosim Scenario si inlocuim astfel valoarea ratei inflatiei de la 4.6% la 5.6%
Rezultatul obtinut:
Se observa astfel ca, daca rata inflatiei creste cu 10%, valoarea neta a investitiei va scadea cu
182,48 lei.
12
2. Presupunand ca, in 5 ani, cota TVA va fi de 12% in loc de 19%, cum va afecta acest lucru
preturile produselor?
Metoda de calcul:
Folosim Scenario si inlocuim astfel cota TVA de la 19% la 12%.
Rezultatul obtinut:
Goal Seek
Se doreste determinarea pretului produsului Fard de obraz, astfel incat totalul preturilor fara TVA sa devina
3500 de lei, de la totalul initial de 3245.89 RON. Astfel, am utilizat functia de Goal Seek si am determinat
pretul nou pe care produsul trebuie sa il aiba, si anume 255.18 RON.
13
Solver
Pentru a optimiza cantitatile ideale de produse vandute, am folosit optiunea Solver astfel incat am reusit
sa calculam numarul optim de produse vandute din fiecare pentru a atinge un profit dorit.
14
Rezultatul obtinut.
Subtotal
Pentru realizarea subtotalului, dorim sa calculam valoarea totala a produselor (fara TVA) in functie de
categoria din care fac acestea parte. Rezultatul este urmatorul:
15
Pivot Table
16
Totusi, setul de date este temporar, deoarece foloseste declaratia DATA si va fi
sters cand sesiunea va fi inchisa.
17
Si am utilizat procedura PRINT pentru afisarea informatiilor:
18
Rezultatul procedurii CONTENTS:
19
• La acest pas, administratorul firmei doreste sa realizeze un raport si sa aloce
fiecarui brand titlul primit in urma vanzarilor si preferintei consumatorilor.
Datele adaugate au fost inregistrate in libraria BRANDURI, in setul de date branduri_test. Mai
departe, a fost aplicata procedura care separa aceste branduri pe categorii.
Astfel, firma Farsali este considerate Brand de lux, Sephora este Premium Brand, Burjois este
Brandul lunii, iar Maelkior este Affordable pentru consumatori. In cazul in care sunt intalnite alte
denumiri de branduri, sunt considerate a fi Affordable.
20
• Analiza frcventei brandurilor in topul preferintelor de consumatori
In acest caz am utilizat procedura FREQ care calculeaza frecventa aparitiei in tabela
de branduri. Rezultatul este urmatorul:
21
Mai departe, utilizam instructiunea WHERE pentru a selecta din datele introduse
doar pe acelea in care consumatorii au varsta egala cu 22 de ani, brandul este TooFaced
sau Sephora sau pretul este egal cu 230 lei. In afisarea acestui rezultatul utilizam
coloanele: Nume, Varsta, Produs, Brand, Pret.
22
4. Generarea graficelor pe baza aestor subseturi de date este realizata cu ajutorul
procedurii GCHART. Pentru fiecare variabila, Producator si PretCuTva este
generat cate un grafic ce afiseaza frecventa aparitiei fiecarui brand in setul de date
din libraria machiaje.
23
Se observa ca majoritatea preturilor cu TVA sunt distincte si ca se repeta doar la 4
dintre produse.
Pentru reazlizarea acestora, este nevoie de adaugarea unor seturi de date temporare cu care sa se
poata lucra:
24
Pentru acest lucru, a fost utilizat urmatorul apel:
Astfel, noul set clientiNoi contine ambele seturi inregistrate mai sus si rezultatul este printat fara alte
modificari.
25
Rezultatul este urmatorul:
Mai departe, pentru a realiza corespondenta intre date, vom folosi optiunea IN. In cazul
in care acestea nu corespund, variabilele temporare definite prin IN vor lua valoarea 0, iar
daca ele corespund iau valoarea 1. Deoarece acestea nu fac parte dintr-un set de date, se va
folosi declaraţia PUT pentru a le lista.
26
Rezultatul va fi urmatorul, ultima inregistrare fiind fara corespondenta cu produsele vandute:
6. Utilizarea de masive
De-a lungul anului 2018, trei magazine de cosmetice au participat la un concurs de vanzari de rujuri, în
patru etape. Se cunoaşte numărul de rujuri vandute de fiecare echipă în fiecare etapă. Se cere să se
determine numărul mediu de rujuri vandute în 2018 de către fiecare magazin şi să realizeze un raport al
vanzarilor de rujuri în anul 2018, per magazin şi per total.
Se importa fisierul magazine.txt ce contine datele despre vanzarile din fiecare etapa, dupa se
calculeaza media acestora.
Se utilizeaza un array care inregistreaza cele patru medii calculate mai sus, iar pentru fiecare
moment de timp, numarul de vanzari este setat cu valoarea mediei de pe pozitia timp.
27
Rezultatul este urmatorul:
28
• Importul unui fisier non-SAS
In realizarea proiectului cu SAS Enterprise Guide dorim sa utilizam datele care au fost folosite in
sectiunea de Excel si de programare SAS. Fisierul non-SAS reprezinta acel tip de fisier care nu are extensia
.sas, precum librariile. Astfel, am importat fisierul excel realizat in prima parte a proiectului.
• Pelucrari statistice
1. In figurile de mai jos, am aplicat Characterize Data, folosind Tasks Describe Characterize Data…,
dupa ce am importat documentul Excel.
In figura de mai jos, este realizata o analiza statistica pentru produsele existente in stocul
magazinului. Se observa faptul ca tipuld e produs Creion contur apare in 2 bucati si are o frecventa de
8.33% din intreg, pe cand restul ai o aparitie de un exemplar si reprezinta 4.167% ca frecventa din total.
29
Tabelul reprezinta o analiza a
frecventei producatorilor in
magazinul de produse cosmetic,
astfel putem observa ca cele mai
multe produse sunt marca Melkior,
Sephora si Ives Saint Laurent, cu un
procent de 16.667%.
2. Calculul statistic din cele doua tabele ilustreaza o analiza a pretului fara TVA al produselor cosmetic.
Se observa faptul ca, pentru un numar de 24 observatii, pretul minim fara TVA este de 35 lei, iar cel
mai mare este 216 lei. Observam si ca in medie, un produs costa 113.792 lei, cu o abatere standard de
10,50. In cazul duratei valabilitatii unui produs, valorile oscileaza de la un minim de 0 luni pana la 45
de luni. Media de valabilitate a unui produs cosmetic existent in magazine este de 15.667 luni, cu o
abatere standard de 3.0239.
30
Pentru variabilele de date, sunt analizate datele de expirare ale produselor si datele de fabricare.
Astfel, putem observa ca produsele nu sunt fabricate mai tarziu de data de 6 Mai 2019 si produsul
care expira primul este pe data de 11 Mai 2019. Produsele cosmetice din stoc expira in medie pe data
de 11 7 septembrie 2020, deoarece produsul care expira ultimul este pe data de 11 Februarie 2023.
• Grafice
31
Graficul de sus ilustreaza
frecventa produselor in
functie de denumriea
acestora. Exista doar
doua produse in
stocul magazinului
care au acelasi nume.
32
Cu privire la data
expirarii, cele mai multe
produse (in numar de 5) expira
pe data de 11 Mai 2019, fiind
urmate de cele pe data de 11
Martie 2020 si 11 Februarie
2023 (cate 4 pentru fiecare data
de expirare).
Graficul prezinta o analiza vizuala in functie de frecventa producatorilor din lista de produse cosmetic.
Cele mai multe dintre ele apartin brandurilor
precum Ives Saint Laurent, Sephora si
Melkior, urmand ca cele mai putine sa
apartina producatorului Lancome.
33
• Interogari
Pentru realizarea interogarii s-a propus urmatoarea problema:
Creaţi un raport de frecvenţe care să afişeze numărul de clienti ai fiecarui brand, exceptând brandul MAC.
Includeţi în interogare numai furnizorii fara brandul MAC şi numai următoarele coloane, în ordinea: Nume
si prenume, Brand preferat, Gradul de satisfactie(1-5)
Pentru realizarea acestei cerinte, am creat un nou proiect si am importat foaia de calcul Clienti a
fisiereului Proiect_PSW.xlsm. De asemenea, am exclus randurile care au brandurl Mac. Am preluat
valorile datelor de comparat din tabela SAS folosind opţiunea de Get Values. Interogand tabela, am
obtinut rezultatul de mai jos.
34
De multe ori, interogarea va avea ca
rezultat un raport SAS. Acesta nu
poate fi folosit, mai departe, pentru
realizarea unor prelucrări asupra
datelor incluse în interogare. Pentru
a obţine raportul de frecvenţe, am
modificat rezultatul interogării
astfel încât să returneze o tabelă
SAS.
Pentru a obţine numărul clientilor al fiecarui brand, am selectat interogarea, apoi Tasks Describe
One-Way Frequencies…. Rezultatul este afisat mai jos:
• Jonctiune
In realizarea jonctiunii folosim instrumentul Query Builder pentru a realiza joncţiunea a doua
tabele care conţin informaţii despre client şi produse. Am creat o nouă coloană care calculează
profitul realizat pentru fiecare brand.
35
Rezultatul profitului calculat poate fi observat in
figura urmatoare:
• Interogari cu parametri
36
Am interogat tabela ce contine date despe
produse, preturi, denumire, producator si pentru
fiecare tip de brand am identificat valoarea
medie si valoarea totala a produselor.
37
Pornind de la tabela Products.xslm realizată la problema anterioară, am creat o tabelă SAS care
conţine preturile pe fiecare categorie si brand, interogare care să includă un parametru pentru coloana
Pret_limita. Pornind de la acest parametru, am creat un filtru astfel încât numai brandurile care au avut
produse cu preturi mai mari decât o valoare specificată de utilizator sa fie incluşi în interogare. Am folosit
prelucrarea List Data si am realizat un raport al producatorilor selectaţi. In figura de mai jos se observa
momentul in care utilizatorul introduce limita peste care doreste sa se incadreze produsele ce apartin
brandurilor din tabela.
38
• Formate definite de utilizator
if n <15:
for x in range(n):
x = float(input('Introdu pret: '))
lista.append(x)
else : print('Numar prea mare (n<15). Reintrodu
numarul')
lista.sort()
lista.reverse()
39
2. Se doreste crearea unei liste de dicţionare cu următoarele chei: id, nume, prenume,
salariul, vechime pentru următorii angajaţi ai lunii: Mihalcea, Andreescu, Matei,
Apostol. De asemenea, daca angajatii au vechimea mai mare de 2 ani, sa li se
majoreze salariul cu 15%.
def afisareinitiala(dict):
for elem in dict:
print(elem)
print("Afisare modificari:")
for dict in lista:
if dict["vechimea"] > 2:
print(dict)
s=dict["salariul"]
print(s)
dict.update(salariul = s*1.15)
3. Cu ajutorul seturilor de date, se doreste crearea unei colectii de date despre tipurile de
branduri ale produselor vandute de firma Makeup Land ( TooFaced, Sephora, Farsali,
Dior, Yves Saint, Laurent, Melkior, Burjois, MAC). Mai departe se va realiza o
comparatie intre primul set si setul brandurilor intalnite in magazinul Sephora,
folosind difference(), symmetric_difference_update()- se va crea un nou
set cu diferentele dintre cele doua seturi. Setul nr 2 de date utilizat este: {Miu Miu,
TooFaced, Sephora, Dior, Yves Saint, Laurent, Burjois, Bvlgari, Burberry, Dior,
Escada, Estee Lauder}.
40
4. Pentru afisarea celui mai preferat brand, folosim tuplurile, colectii de date ordonate
si nemodificabile. Deoarece acestea permit elemente identice, putem aplica functia
de count() pentru a determina brandul lunii.
print(tupluNrAparitii)
def maximNr(tuplu):
max = 0;
for nr in tuplu:
if max < nr :
max=nr
return max
print(maximNr(tupluNrAparitii))
def determinareBrand(tuplu) :
poz = 0;
max=maximNr(tuplu)
for nr in tuplu:
if max == nr:
poz=poz+1
if poz == 1:
print("Brandul lunii este Sephora")
break
else:
if poz == 2:
print("Brandul lunii este MAC")
break
else:
if poz == 3:
print("Brandul lunii este Farsali")
else:
if poz == 4:
print("Brandul lunii este Yves Saint
Laurent")
else:
if poz == 5:
print("Brandul lunii este
Melkior")
else:
if poz == 6:
print("Brandul lunii este
Burjois")
determinareBrand(tupluNrAparitii)
5. Datele despre produse vandute, alaturi de denumire, tip si brandul lor este deschis cu
ajutorul librariei pandas. De asemenea, dorim sa afisam primele 5 produse, folosind
comanda iloc.
import pandas
df = pandas.read_csv('data.csv')
#print(df)
41
6. Folosind comanda loc, realizam diverse prelucrari de continut pentru datele importante
in PyCharm.
Astfel, vom afisa pentru elemente cu indexul de la 1 pana la 3, date incepand de la coloana
Valabilitate(luni) pana la Pret fara TVA. Rezultatul este urmatorul:
42
Mai departe. Dorim sa afisam date despre categoria fiecarui element cu indexul cuprins intre 5 si
10. Rezultatul este urmatorul:
print(df.loc[5:10,'Categorie']
)
7. Vom importa date despre angajatii firmei Makeup Land si vom modifica datele in
interiorul pachetului pandas.Astfel, angajatii care au Salariul mai mic de 1700 de lei si
care au vechimea de peste 2 ani, vor primi o marire de salariu, acesta devenind 1780. De
asmenea, rezultatul este vizualizat si in fisierul CSV.
import pandas
df = pandas.read_csv('dataAngajati.csv')
#print(df)
df1=df.copy()
print('Inainte de modificarea salariului: ')
print(df1)
df1.loc[(df1['Salariu'] < 1700) & (df1['Vechime'] > 2),
'Salariu'] = 1780
print('Dupa modificarea salariului: ')
print(df1)
df1.to_csv('dataAngajati.csv')
43
8. Tratarea valorilor lipsa din fisierul dataAngajatiLipsa.csv.
import pandas as pd
df = pd.read_csv('dataAngajatiLipsa.csv', usecols=['Nume si
prenume','Salariu','Vechime'])
print(df['Vechime'])
print(df['Vechime'].fillna(0))
import pandas as pd
pd.set_option("display.max_columns",10)
df = pd.read_csv('dataAngajati.csv')
44
10. Prelucrari statistice pentru setul de date date.csv. Dorim sa afisam numarul total de
inregistrari, pretul maxim al unui produs utilizand sumele de pe coloanal Pret cu TVA, sa
identificam cate tipuri de produse su pentru ten sis a afisam toate categoriile existente in
magazin.
import pandas as pd
df = pd.read_csv('data.csv')
print('Numar inregistrari')
print(df['Denumire produs'].count())
print('Pretul maxima al unui produs')
print(df['Pret cu TVA'].max())
print('Numarul total de produse de ten')
print(df['Denumire produs'][df['Categorie'] ==
'Produse ten'].sum())
print('Numar de tipuri de produse disponobile,
eliminand duplicatele')
print(df['Categorie'].nunique())
11. Pentru a grupa datele despre angajati, am utilizat gruparea si agregarea datelor in cadrul
pachetului pandas. Astfel, le-am grupat in functie de salariu si vechime si am calculate
statistici pentru fiecare grup. Astfel, am calculate suma comisionului acordat dupa fiecare
grup si am afisat prima aparitie a numarului de produse vandute pentru fiecare grup. Mai
departe, le-am salvat in fisierul agregare.csv, grupandu-le dupa Nume si prenume si
Comision. Rezultatele sunt urmatoarele:
import pandas as pd
df = pd.read_csv('dataAngajati.csv')
45
12. Utilizarea functiilor de grup pentru prelucrarea datelor despre angajati. Astfel, am afisat
prima inregistrare din coloanal Categorie de produse, avand valori distince. Mai departe,
am droit afisarea totalului valorii pentru fiecare categorie de produse existente in stoc si
dupa am calculate valoarea totala a produselor de ochi, grupate dupa valabilitatea lor (in
luni).
import pandas as pd
df = pd.read_csv('data.csv')
print('Prima inregistrare din coloana Categorie produs
pe valori distincte')
print(df.groupby('Categorie').first())
print('Valoarea insumata pentru fiecare categorie de
produse')
print(df.groupby('Categorie')['Pret cu TVA'].sum())
print('Valoarea insumata pe produse (Produsele de ochi),
in functie de valabilitate')
print(df[df['Categorie'] == 'Produse
ochi'].groupby('Valabilitate(luni)')['Pret cu
TVA'].sum())
46
13. Prelucararea seturilor de date cu merge/join. Folosind doua seturi de date, data.csv si
data2.csv, am realizat un inner join intre acestea, avand ca si cheie comuna Denumirea
de produs. Mai departe, am afisat datele si structura fisierelor.
import pandas as pd
df = pd.read_csv('data.csv')
df1 = pd.read_csv('data2.csv')
47
14. Reprezentarea grafica cu matlplotlib.
import pandas as pd
import matplotlib.pyplot as plt
pd.set_option("display.max_columns",10)
df = pd.read_csv('data.csv')
print(df['Valabilitate(luni)'])
df['Valabilitate(luni)'].plot(kind='bar')
plt.xlabel('Denumire produs')
plt.ylabel('Pret cu TVA')
plt.show()
In graficul de mai jos am realizat analiza produselor in functie de valabilitatea acestora, dupa denumire si
afiasand pentru fiecare pretul total cu TVA.
48
15. Clusterizare folosind scikit-learn
Pe baza datelor din fisierele date3.csv care contine date despre produse si dataAngajatiLipsa.csv am
realizat clusterizarea, am identificat valorile lipsa si am efectuat analize pentru produsele si
disponibilitatea lor. Tinem cont ca in fisierul date3.csv exista coloanal In stoc ce determina prin valori de 0
si 1 daca produsul este sau nu valabil. Astfel, am urmat pasii:
print('*****produse*****')
print(data1.head())
print('*****angajati*****')
print(data2.head())
49
• Pas 3. Calcul statistici de bază
• print('*****produse_stats*****')
print(data1.describe())
print('*****angajati_stats*****')
print(data2.describe())
• Pas 4. Vizualizare denumire coloane din seturile de date și indentificare valori lipsă
50
• Pas 5. Calcul număr valori lipsă pentru coloanele celor două seturi de date
• print('*****In setul de produse*****')
print(data1.isna().sum())
print("\n")
print('*****In setul de angajati*****')
print(data2.isna().sum())
51
• Pas 6. Înlocuirea valorilor lipsă cu media coloanei, utilizând funcția fillna
• data1.fillna(data1.mean(), inplace=True)
data2.fillna(data2.mean(), inplace=True)
print(data1.isna().sum())
print(data2.isna().sum())
52
• Pas 8. Reprezentare grafică a coloanelor In stoc-Pret fara TVA și In stoc-Survived pe
Categorii
•
g = sns.FacetGrid(data1, col='In stoc')
g.map(plt.hist, 'Pret fara TVA')
grid = sns.FacetGrid(data1, col='In stoc', row='Categorie')
grid.map(plt.hist, 'Pret fara TVA')
grid.add_legend()
plt.show()
53