Hvordan lage et pivotbord i Pandas Python

Hvordan lage et pivotbord i Pandas Python
I Pandas Python omfatter pivottabellen summer, tellinger eller aggregeringsfunksjoner avledet fra en datatabell. Aggregeringsfunksjoner kan brukes på forskjellige funksjoner eller verdier. En pivot -tabell lar oss oppsummere tabelldataene som gruppert etter forskjellige verdier, inkludert kategoriske kolonnens kategoriske verdier.

Før du bruker Pandas Pivot -tabell, må du sørge for at du forstår dataene og spørsmålene dine du prøver å løse gjennom Pivot -tabellen. Ved å bruke denne metoden kan du gi kraftige resultater. Vi vil utdype i denne artikkelen, hvordan lage en pivotbord i Pandas Python.

Les data fra Excel -filen

Vi har lastet ned en Excel -database med matsalg. Før du starter implementeringen, må du installere noen nødvendige pakker for å lese og skrive Excel -databasefilene. Skriv inn følgende kommando i terminaldelen i Pycharm -redigereren din:

Pip Install XLWT OpenPyxl XLSXWriter XLRD

Les nå data fra Excel -arket. Importer de nødvendige Pandas biblioteker og endre banen til databasen din. Ved å kjøre følgende kode, kan data hentes fra filen.

Importer pandaer som PD
Importer numpy som NP
dtfrm = pd.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
Print (DTFRM)

Her leses dataene fra matsalget Excel -databasen og sendt inn i DataFrame -variabelen.

Lag pivotbord ved hjelp av Pandas Python

Nedenfor har vi opprettet en enkel pivottabell ved å bruke matsalgsdatabasen. Det kreves to parametere for å lage en pivottabell. Den første er data som vi har gått inn i DataFrame, og den andre er en indeks.

Sving data om en indeks

Indeksen er funksjonen i en pivottabell som lar deg gruppere dataene dine basert på krav. Her har vi tatt 'produkt' som indeks for å lage en grunnleggende pivottabell.

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
pivot_tble = pd.PIVOT_TABLE (DataFrame, Index = ["Produkt"])
print (pivot_tble)

Følgende resultat viser etter å ha kjørt ovennevnte kildekode:

Definer eksplisitt kolonner

For mer analyse av dataene dine, definerer eksplisitt kolonnenavn med indeksen. For eksempel ønsker vi å vise den eneste enhetsprisen til hvert produkt i resultatet. For dette formålet, legg til verdiparameteren i pivottabellen din. Følgende kode gir deg samme resultat:

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
pivot_tble = pd.pivot_table (DataFrame, index = 'Product', Values ​​= 'UnitPrice')
print (pivot_tble)

Svingdata med multi-indeks

Data kan grupperes basert på mer enn en funksjon som en indeks. Ved å bruke Multi-INDEX-tilnærmingen, kan du få mer spesifikke resultater for dataanalyse. For eksempel kommer produkter under forskjellige kategorier. Så du kan vise "produktet" og "kategori" -indeksen med tilgjengelig 'mengde' og 'UnitPrice' for hvert produkt som følger:

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
pivot_tble = pd.PIVOT_TABLE (DataFrame, Index = ["Category", "Product"], Values ​​= ["UnitPrice", "Quantity"])
print (pivot_tble)

Bruke aggregeringsfunksjon i Pivot Table

I en pivottabell kan Aggfunc brukes for forskjellige funksjonsverdier. Den resulterende tabellen er oppsummering av funksjonsdata. Den samlede funksjonen gjelder gruppedataene dine i pivot_table. Som standard er aggregatfunksjon NP.mener(). Men basert på brukerkrav, kan forskjellige samlede funksjoner gjelde for forskjellige datafunksjoner.

Eksempel:

Vi har brukt samlede funksjoner i dette eksemplet. NP.Sum () -funksjon brukes til 'kvantitet' -funksjon og NP.Gjennomsnitt () -funksjonen for 'UnitPrice' -funksjonen.

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
pivot_tble = pd.pivot_table (DataFrame, index = ["kategori", "produkt"], aggfunc = 'kvantitet': np.Sum, 'UnitPrice': NP.mener)
print (pivot_tble)

Etter å ha brukt aggregeringsfunksjonen for forskjellige funksjoner, får du følgende utdata:

Ved hjelp av verdiparameteren kan du også bruke aggregatfunksjon for en spesifikk funksjon. Hvis du ikke vil spesifisere funksjonens verdi, samler den databasens numeriske funksjoner. Ved å følge den gitte kildekoden, kan du bruke den samlede funksjonen for en spesifikk funksjon:

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
pivot_tble = pd.pivot_table (DataFrame, index = ['Produkt'], verdier = ['UnitPrice'], AGGFUNC = NP.mener)
print (pivot_tble)

Forskjellig mellom verdiene vs. Kolonner i svingstabell

Verdiene og kolonnene er det viktigste forvirrende punktet i pivot_table. Det er viktig å merke seg at kolonner er valgfrie felt, og viser den resulterende tabellens verdier horisontalt på toppen. Aggregeringsfunksjonen AGGFUNC gjelder for verdiene som du viser.

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
pivot_tble = pd.PIVOT_TABLE (DataFrame, Index = ['Category', 'Product', 'City'], Values ​​= ['UnitPrice', 'Quantity'],
kolonner = ['region'], aggfunc = [np.sum])
print (pivot_tble)

Håndtering av manglende data i Pivot Table

Du kan også håndtere de manglende verdiene i pivottabellen ved å bruke 'Fill_Value' Parameter. Dette lar deg erstatte NAN -verdiene med en ny verdi som du gir for å fylle.

For eksempel fjernet vi alle nullverdier fra ovennevnte resulterende tabell ved å kjøre følgende kode og erstatter NAN -verdiene med 0 i hele resulterende tabell.

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.XLSX ')
pivot_tble = pd.PIVOT_TABLE (DataFrame, Index = ['Category', 'Product', 'City'], Values ​​= ['UnitPrice', 'Quantity'],
kolonner = ['region'], aggfunc = [np.sum], fill_value = 0)
print (pivot_tble)

Filtrering i svingbord

Når resultatet er generert, kan du bruke filteret ved å bruke standard DataFrame -funksjonen. La oss ta et eksempel. Filtrer de produktene hvis enhetspris er mindre enn 60. Den viser de produktene hvis pris er mindre enn 60.

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (DataFrame, index = 'produkt', verdier = 'UnitPrice', aggfunc = 'sum')
low_price = pivot_tble [pivot_tble ['unitprice'] < 60]
print (low_price)

Ved å bruke en annen spørringsmetode, kan du filtrere resultater. For eksempel har vi for eksempel filtrert kategorien informasjonskapsler basert på følgende funksjoner:

Importer pandaer som PD
Importer numpy som NP
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.xlsx ', index_col = 0)
pivot_tble = pd.PIVOT_TABLE (DataFrame, Index = ["Category", "City", "Region"], Values ​​= ["UnitPrice", "Quantity"], AGGFUNC = NP.sum)
PT = pivot_tble.spørring ('kategori == ["Cookies"]')
Print (PT)

Produksjon:

Visualiser Pivot -tabelldataene

For å visualisere Pivot -tabelldataene, følg følgende metode:

Importer pandaer som PD
Importer numpy som NP
Importer matplotlib.Pyplot som Plt
DataFrame = PD.Read_Excel ('C:/Brukere/Dell/Desktop/FoodsalesData.xlsx ', index_col = 0)
pivot_tble = pd.PIVOT_TABLE (DataFrame, Index = ["Category", "Product"], Values ​​= ["UnitPrice"])
pivot_tble.plot (type = 'bar');
plt.forestilling()

I ovennevnte visualisering har vi vist enhetsprisen på de forskjellige produktene sammen med kategorier.

Konklusjon

Vi utforsket hvordan du kan generere et svingbord fra DataFrame ved hjelp av Pandas Python. En pivotbord lar deg generere dyp innsikt i datasettene dine. Vi har sett hvordan vi kan generere et enkelt pivottabell ved hjelp av multi-indeks og bruke filtrene på pivottabeller. Videre har vi også vist å plotte svingtabelldata og fylle manglende data.