Pred uporabo vrtilne tabele pande se prepričajte, da razumete svoje podatke in vprašanja, ki jih poskušate rešiti skozi vrtilno tabelo. Z uporabo te metode lahko dosežete močne rezultate. V tem članku bomo podrobno opisali, kako ustvariti vrtilno tabelo v pandah python.
Preberite podatke iz Excelove datoteke
Prenesli smo Excelovo bazo podatkov o prodaji hrane. Preden začnete z implementacijo, morate namestiti nekaj potrebnih paketov za branje in pisanje datotek zbirke podatkov excel. V terminalski odsek urejevalnika pycharm vnesite naslednji ukaz:
pip namestite xlwt openpyxl xlsxwriter xlrd
Zdaj preberite podatke z Excelovega lista. Uvozite zahtevane knjižnice pande in spremenite pot svoje baze podatkov. Nato lahko z zagonom naslednje kode pridobite podatke iz datoteke.
uvozi pande kot pduvozi numpy kot np
dtfrm = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
tiskanje (dtfrm)
Tu se podatki preberejo iz baze podatkov o prodaji hrane excel in prenesejo v spremenljivko dataframe.
Ustvari vrtilno tabelo s pomočjo Pandas Python
Spodaj smo z uporabo baze podatkov o prodaji živil ustvarili preprosto vrtilno tabelo. Za izdelavo vrtilne tabele sta potrebna dva parametra. Prvi so podatki, ki smo jih prenesli v podatkovni okvir, drugi pa indeks.
Zasuk podatkov na indeksu
Indeks je značilnost vrtilne tabele, ki vam omogoča združevanje podatkov na podlagi zahtev. Tu smo za indeks vzeli 'Product' za ustvarjanje osnovne vrtilne tabele.
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.vrtilna tabela (podatkovni okvir, indeks = ["izdelek"])
tiskanje (vrtilna_tble)
Po zagonu zgornje izvorne kode se prikaže naslednji rezultat:
Izrecno določite stolpce
Za večjo analizo podatkov izrecno določite imena stolpcev z indeksom. Na primer, v rezultatu želimo prikazati edino UnitPrice za vsak izdelek. V ta namen dodajte parameter vrednosti v vrtilno tabelo. Naslednja koda daje enak rezultat:
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.vrtilna_tabela (podatkovni okvir, indeks = 'Izdelek', vrednosti = 'UnitPrice')
tiskanje (vrtilna_tble)
Vrti podatke z več indeksom
Podatke lahko kot indeks razvrstimo na podlagi več elementov. Z uporabo pristopa z več indeksi lahko dobite natančnejše rezultate za analizo podatkov. Na primer, izdelki spadajo v različne kategorije. Tako lahko prikažete indeks "Product" in "Category" z razpoložljivimi "Quantity" in "UnitPrice" za vsak izdelek, kot sledi:
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.vrtilna tabela (podatkovni okvir, indeks = ["Kategorija", "Izdelek"], vrednosti = ["UnitPrice", "Količina"])
tiskanje (vrtilna_tble)
Uporaba funkcije združevanja v vrtilni tabeli
V vrtilni tabeli lahko aggfunc uporabite za različne vrednosti lastnosti. Rezultatna tabela je povzetek podatkov o lastnostih. Združevalna funkcija velja za podatke skupine v vrtilni tabeli. Privzeto je skupna funkcija np.pomeni(). Toda na podlagi uporabniških zahtev se lahko za različne podatkovne funkcije uporabljajo različne sestavljene funkcije.
Primer:
V tem primeru smo uporabili agregatne funkcije. NP.Funkcija sum () se uporablja za funkcijo 'Količina' in np.pomeni povprečno () za funkcijo 'UnitPrice'.
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.vrtilna tabela (podatkovni okvir, indeks = ["Kategorija", "Izdelek"], aggfunc = 'Količina': np.vsota, 'UnitPrice': np.pomeni)
tiskanje (vrtilna_tble)
Po uporabi funkcije združevanja za različne funkcije boste dobili naslednji izhod:
S parametrom vrednosti lahko za določeno značilnost uporabite tudi agregatno funkcijo. Če ne želite določiti vrednosti funkcije, seštejejo številčne značilnosti vaše baze podatkov. Če sledite dani izvorni kodi, lahko uporabite funkcijo združevanja za določeno funkcijo:
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.vrtilna tabela (podatkovni okvir, indeks = ['Izdelek'], vrednosti = ['UnitPrice'], aggfunc = np.pomeni)
tiskanje (vrtilna_tble)
Razlike med vrednostmi vs. Stolpci v vrtilni tabeli
Vrednosti in stolpci so glavna zmedena točka v vrtilni tabeli. Pomembno je omeniti, da so stolpci neobvezna polja, ki na vrhu prikažejo vrednosti rezultatov tabele vodoravno. Funkcija združevanja aggfunc velja za polje vrednosti, ki ga navedete.
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.vrtilna tabela (podatkovni okvir, indeks = ['Kategorija', 'Izdelek', 'Mesto'], vrednosti = ['UnitPrice', 'Količina'],
stolpci = ['Regija'], aggfunc = [np.vsota])
tiskanje (vrtilna_tble)
Ravnanje z manjkajočimi podatki v vrtilni tabeli
Manjkajoče vrednosti v vrtilni tabeli lahko obravnavate tudi z uporabo 'fill_value' Parameter. To vam omogoča, da vrednosti NaN nadomestite z novo vrednostjo, ki jo zagotovite za zapolnitev.
Na primer, iz zgornje rezultantne tabele smo odstranili vse ničelne vrednosti, tako da smo zagnali naslednjo kodo in v celotni rezultatski tabeli nadomestili vrednosti NaN z 0.
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.vrtilna tabela (podatkovni okvir, indeks = ['Kategorija', 'Izdelek', 'Mesto'], vrednosti = ['UnitPrice', 'Količina'],
stolpci = ['Regija'], aggfunc = [np.vsota], izpolni_vrednost = 0)
tiskanje (vrtilna_tble)
Filtriranje v vrtilni tabeli
Ko je rezultat ustvarjen, lahko filter uporabite s standardno funkcijo podatkovnega okvira. Vzemimo primer. Filtrirajte tiste izdelke, katerih UnitPrice je manjša od 60. Prikaže tiste izdelke, katerih cena je nižja od 60.
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.vrtilna_tabela (podatkovni okvir, indeks = 'Product', values = 'UnitPrice', aggfunc = 'sum')
nizka_cena = pivot_tble [pivot_tble ['UnitPrice'] < 60]
tisk (nizka cena)
Z drugo metodo poizvedbe lahko filtrirate rezultate. Primer: kategorijo piškotkov smo na primer filtrirali na podlagi naslednjih lastnosti:
uvozi pande kot pduvozi numpy kot np
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.vrtilna_tabela (podatkovni okvir, indeks = ["Kategorija", "Mesto", "Regija"], vrednosti = ["UnitPrice", "Količina"], aggfunc = np.vsota)
pt = pivot_tble.poizvedba ('Kategorija == ["Piškotki"]')
tiskanje (pt)
Izhod:
Vizualizirajte podatke vrtilne tabele
Če želite vizualizirati podatke vrtilne tabele, sledite naslednji metodi:
uvozi pande kot pduvozi numpy kot np
uvozi matplotlib.pyplot kot plt
podatkovni okvir = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.vrtilna tabela (podatkovni okvir, indeks = ["Kategorija", "Izdelek"], vrednosti = ["UnitPrice"])
vrtilna_tble.ploskev (kind = 'bar');
plt.pokaži ()
V zgornji vizualizaciji smo prikazali ceno na enoto za različne izdelke skupaj s kategorijami.
Zaključek
Raziskovali smo, kako lahko z uporabo Pandas python ustvarite vrtilno tabelo iz podatkovnega okvira. Vrtilna tabela vam omogoča, da ustvarite globok vpogled v svoje nabore podatkov. Videli smo, kako ustvarimo preprosto vrtilno tabelo z uporabo več indeksov in uporabimo filtre na vrtilnih tabelah. Poleg tega smo tudi pokazali, da načrtujemo podatke vrtilne tabele in zapolnjujemo manjkajoče podatke.