Prije upotrebe pandine pivot tablice, provjerite razumijete li svoje podatke i pitanja koja pokušavate riješiti kroz pivot tablicu. Korištenjem ove metode možete postići snažne rezultate. U ovom ćemo članku razraditi kako stvoriti zaokretnu tablicu u pandama python.
Čitanje podataka iz Excel datoteke
Preuzeli smo excel bazu podataka o prodaji hrane. Prije početka implementacije morate instalirati neke potrebne pakete za čitanje i pisanje datoteka baze podataka excel. Unesite sljedeću naredbu u terminalski odjeljak vašeg uređivača pycharm:
pip instalirati xlwt openpyxl xlsxwriter xlrd
Sada pročitajte podatke s excel lista. Uvezite potrebne pandine knjižnice i promijenite put do vaše baze podataka. Zatim se pokretanjem sljedećeg koda podaci mogu dohvatiti iz datoteke.
uvoziti pande kao pduvoz numpy kao np
dtfrm = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
ispis (dtfrm)
Ovdje se podaci čitaju iz baze podataka o prodaji hrane i prenose u varijablu dataframe.
Stvorite zaokretnu tablicu pomoću Pandas Pythona
U nastavku smo stvorili jednostavnu stožernu tablicu pomoću baze podataka o prodaji hrane. Za izradu zaokretne tablice potrebna su dva parametra. Prvi su podaci koje smo prenijeli u podatkovni okvir, a drugi je indeks.
Pivot podaci na indeksu
Indeks je značajka zaokretne tablice koja vam omogućuje grupiranje podataka na temelju zahtjeva. Ovdje smo uzeli 'Proizvod' kao indeks za stvaranje osnovne zaokretne tablice.
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ["Proizvod"])
ispis (pivot_tble)
Sljedeći rezultat prikazuje se nakon pokretanja gornjeg izvornog koda:
Eksplicitno definirajte stupce
Za veću analizu podataka izričito definirajte nazive stupaca indeksom. Na primjer, želimo prikazati jedinu jedinicu cijene svakog proizvoda u rezultatu. U tu svrhu dodajte parametar vrijednosti u svoju zaokretnu tablicu. Sljedeći kod daje vam isti rezultat:
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = 'Proizvod', vrijednosti = 'Jedinstvena cijena')
ispis (pivot_tble)
Pivot podaci s višestrukim indeksom
Podaci se mogu grupirati na temelju više značajki kao indeks. Korištenjem pristupa s više indeksa možete dobiti konkretnije rezultate za analizu podataka. Na primjer, proizvodi spadaju u različite kategorije. Dakle, možete prikazati indeks "Proizvod" i "Kategorija" s dostupnim "Količinom" i "Jedinstvenom cijenom" svakog proizvoda na sljedeći način:
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ["Kategorija", "Proizvod"], vrijednosti = ["UnitPrice", "Količina"])
ispis (pivot_tble)
Primjena funkcije agregiranja u zaokretnoj tablici
U zaokretnoj tablici aggfunc se može primijeniti na različite vrijednosti značajke. Rezultirajuća tablica je sažetak podataka o značajkama. Agregatna funkcija odnosi se na podatke vaše grupe u zaokretnoj tablici. Prema zadanim postavkama agregatna funkcija je np.znači (). No, na temelju korisničkih zahtjeva, različite skupne funkcije mogu se primijeniti na različite značajke podataka.
Primjer:
U ovom smo primjeru primijenili agregatne funkcije. NP.funkcija sum () koristi se za značajku 'Količina' i np.mean () funkcija za značajku "UnitPrice".
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ["Kategorija", "Proizvod"], aggfunc = 'Količina': np.zbroj, 'UnitPrice': np.znači)
ispis (pivot_tble)
Nakon primjene funkcije agregiranja za različite značajke, dobit ćete sljedeći izlaz:
Korištenjem parametra vrijednosti možete primijeniti i agregatnu funkciju za određenu značajku. Ako ne želite odrediti vrijednost značajke, ona agregira numeričke značajke vaše baze podataka. Slijedeći zadani izvorni kod, možete primijeniti skupnu funkciju za određenu značajku:
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ['Proizvod'], vrijednosti = ['JedinicaPrice'], aggfunc = np.znači)
ispis (pivot_tble)
Razlika između vrijednosti vs. Stupci u zaokretnoj tablici
Vrijednosti i stupci glavna su zbunjujuća točka u pivot_table. Važno je napomenuti da su stupci neobavezna polja koja prikazuju vrijednosti rezultirajuće tablice vodoravno na vrhu. Funkcija agregiranja aggfunc odnosi se na polje vrijednosti koje ste naveli.
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ['Kategorija', 'Proizvod', 'Grad'], vrijednosti = ['UnitPrice', 'Količina'],
stupci = ['Regija'], aggfunc = [np.iznos])
ispis (pivot_tble)
Rukovanje podacima koji nedostaju u zaokretnoj tablici
Vrijednosti koje nedostaju također možete riješiti u izvedenoj tablici pomoću 'ispuniti_vrijednost' Parametar. To vam omogućuje da NaN vrijednosti zamijenite nekom novom vrijednošću koju pružate za popunjavanje.
Na primjer, uklonili smo sve null vrijednosti iz gornje rezultantne tablice pokretanjem sljedećeg koda i zamijenili NaN vrijednosti s 0 u cijeloj rezultantnoj tablici.
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ['Kategorija', 'Proizvod', 'Grad'], vrijednosti = ['UnitPrice', 'Količina'],
stupci = ['Regija'], aggfunc = [np.zbroj], fill_value = 0)
ispis (pivot_tble)
Filtriranje u zaokretnoj tablici
Nakon generiranja rezultata, možete primijeniti filtar pomoću standardne funkcije okvira podataka. Uzmimo primjer. Filtrirajte one proizvode čija je UnitPrice manja od 60. Prikazuje one proizvode čija je cijena manja od 60.
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = 'Proizvod', vrijednosti = 'JedinicaPrice', aggfunc = 'zbroj')
niska cijena = pivot_tble [pivot_tble ['UnitPrice'] < 60]
ispis (niska cijena)
Korištenjem druge metode upita možete filtrirati rezultate. Na primjer, Na primjer, filtrirali smo kategoriju kolačića na temelju sljedećih značajki:
uvoziti pande kao pduvoz numpy kao np
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ["Kategorija", "Grad", "Regija"], vrijednosti = ["Jedinica cijene", "Količina"], aggfunc = np.iznos)
pt = pivot_tble.upit ('Kategorija == ["Kolačići"]')
ispis (pt)
Izlaz:
Vizualizirajte podatke zaokretne tablice
Da biste vizualizirali podatke zaokretne tablice, slijedite sljedeću metodu:
uvoziti pande kao pduvoz numpy kao np
uvoz matplotlib.pyplot kao plt
okvir podataka = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.zaokretna tablica (okvir podataka, indeks = ["Kategorija", "Proizvod"], vrijednosti = ["UnitPrice"])
pivot_tble.zaplet (vrsta = 'traka');
plt.pokazati()
U gornjoj vizualizaciji prikazali smo jediničnu cijenu različitih proizvoda zajedno s kategorijama.
Zaključak
Istražili smo kako možete generirati zaokretnu tablicu iz podatkovnog okvira pomoću Pandas pythona. Zaokretna tablica omogućuje vam stvaranje dubokih uvida u vaše skupove podataka. Vidjeli smo kako generirati jednostavnu zaokretnu tablicu pomoću višestrukog indeksa i primijeniti filtre na zaokretnim tablicama. Štoviše, pokazali smo i da crta podatke pivot tablice i popunjava nedostajuće podatke.