Gegevenswetenschap

Een draaitabel maken in Pandas Python

Een draaitabel maken in Pandas Python
In panda's python bevat de draaitabel sommen, tellingen of aggregatiefuncties die zijn afgeleid van een gegevenstabel. Aggregatiefuncties kunnen worden gebruikt voor verschillende functies of waarden. Met een draaitabel kunnen we de tabelgegevens samenvatten als gegroepeerd op verschillende waarden, inclusief categorische kolomwaarden.

Voordat u de draaitabel van panda gebruikt, moet u ervoor zorgen dat u uw gegevens en vragen begrijpt die u via de draaitabel probeert op te lossen. Door deze methode te gebruiken, kunt u krachtige resultaten produceren. We zullen in dit artikel uitleggen hoe je een draaitabel maakt in panda's python.

Gegevens lezen uit Excel-bestand

We hebben een Excel-database met voedselverkopen gedownload. Voordat u met de implementatie begint, moet u enkele noodzakelijke pakketten installeren voor het lezen en schrijven van de Excel-databasebestanden. Typ de volgende opdracht in het terminalgedeelte van uw pycharm-editor:

pip install xlwt openpyxl xlsxwriter xlrd

Lees nu gegevens uit het Excel-blad. Importeer de benodigde panda-bibliotheken en wijzig het pad van uw database. Door de volgende code uit te voeren, kunnen gegevens uit het bestand worden opgehaald:.

panda's importeren als pd
importeer numpy als np
dtfrm = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
print(dtfrm)

Hier worden de gegevens gelezen uit de Excel-database voor voedselverkoop en doorgegeven aan de dataframe-variabele.

Draaitabel maken met Panda's Python

Hieronder hebben we een eenvoudige draaitabel gemaakt met behulp van de voedselverkoopdatabase. Er zijn twee parameters vereist om een ​​draaitabel te maken. De eerste zijn gegevens die we hebben doorgegeven aan het dataframe, en de andere is een index.

Gegevens draaien op een index

De index is de functie van een draaitabel waarmee u uw gegevens kunt groeperen op basis van vereisten. Hier hebben we 'Product' als index genomen om een ​​eenvoudige draaitabel te maken.

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Product"])
print(pivot_tble)

Het volgende resultaat wordt weergegeven na het uitvoeren van de bovenstaande broncode:

Definieer kolommen expliciet

Voor meer analyse van uw gegevens definieert u de kolomnamen expliciet met de index. We willen bijvoorbeeld de enige eenheidsprijs van elk product in het resultaat weergeven. Voeg hiervoor de parameter values ​​toe aan uw draaitabel. De volgende code geeft hetzelfde resultaat:

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index='Product', values='Eenheidsprijs')
print(pivot_tble)

Draaigegevens met multi-index

Gegevens kunnen worden gegroepeerd op basis van meer dan één functie als index. Door de multi-indexbenadering te gebruiken, kunt u specifiekere resultaten krijgen voor gegevensanalyse. Producten vallen bijvoorbeeld onder verschillende categorieën. U kunt dus de index 'Product' en 'Categorie' met de beschikbare 'Aantal' en 'Eenheidsprijs' van elk product als volgt weergeven:

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Categorie","Product"],values=["Eenheidsprijs", "Aantal"])
print(pivot_tble)

Aggregatiefunctie toepassen in draaitabel

In een draaitabel kan de aggfunc worden toegepast voor verschillende kenmerkwaarden. De resulterende tabel is de samenvatting van functiegegevens. De aggregatiefunctie is van toepassing op uw groepsgegevens in pivot_table. Standaard is de aggregatiefunctie np.gemeen(). Maar op basis van gebruikersvereisten kunnen verschillende aggregatiefuncties van toepassing zijn op verschillende gegevensfuncties.

Voorbeeld:

In dit voorbeeld hebben we aggregatiefuncties toegepast. de np.sum() functie wordt gebruikt voor 'Quantity' feature en np.mean() functie voor de functie 'Eenheidsprijs'.

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Categorie","Product"], aggfunc='Aantal': np.som,'Eenheidsprijs': np.gemeen)
print(pivot_tble)

Nadat u de aggregatiefunctie voor verschillende functies hebt toegepast, krijgt u de volgende uitvoer:

Met behulp van de waardeparameter kunt u ook de aggregatiefunctie toepassen voor een specifieke functie. Als u de waarde van het kenmerk niet opgeeft, worden de numerieke kenmerken van uw database samengevoegd. Door de gegeven broncode te volgen, kunt u de aggregatiefunctie toepassen voor een specifieke functie:

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index=['Product'], values=['UnitPrice'], aggfunc=np.gemeen)
print(pivot_tble)

Verschillend tussen Waarden vs. Kolommen in draaitabel

De waarden en kolommen zijn het belangrijkste verwarrende punt in de draaitabel. Het is belangrijk op te merken dat kolommen optionele velden zijn, waarbij de waarden van de resulterende tabel horizontaal bovenaan worden weergegeven. De aggregatiefunctie aggfunc is van toepassing op het waardenveld dat u vermeldt.

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Categorie','Product', 'Plaats'],values=['Eenheidsprijs', 'Aantal'],
kolommen=['Regio'],aggfunc=[np.som])
print(pivot_tble)

Omgaan met ontbrekende gegevens in draaitabel

U kunt de ontbrekende waarden in de draaitabel ook afhandelen met behulp van de 'vul_waarde' Parameter. Hiermee kunt u de NaN-waarden vervangen door een nieuwe waarde die u opgeeft om te vullen.

We hebben bijvoorbeeld alle null-waarden uit de bovenstaande resulterende tabel verwijderd door de volgende code uit te voeren en de NaN-waarden te vervangen door 0 in de hele resulterende tabel.

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Categorie','Product', 'Plaats'],values=['Eenheidsprijs', 'Aantal'],
kolommen=['Regio'],aggfunc=[np.som], fill_value=0)
print(pivot_tble)

Filteren in draaitabel

Zodra het resultaat is gegenereerd, kunt u het filter toepassen met behulp van de standaard dataframe-functie. Laten we een voorbeeld nemen. Filter die producten waarvan de UnitPrice lager is dan 60. Het toont die producten waarvan de prijs lager is dan 60.

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe, index='Product', values='UnitPrice', aggfunc='sum')
low_price=pivot_tble[pivot_tble['Eenheidsprijs'] < 60]
print(lage_prijs)

Door een andere querymethode te gebruiken, kunt u de resultaten filteren. We hebben bijvoorbeeld de categorie cookies gefilterd op basis van de volgende kenmerken:

panda's importeren als pd
importeer numpy als np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe,index=["Categorie","Stad","Regio"],values=["Eenheidsprijs", "Aantal"],aggfunc=np.som)
pt=pivot_tble.query('Categorie == ["Cookies"]')
afdrukken (pt)

Uitgang:

De draaitabelgegevens visualiseren

Volg de volgende methode om de draaitabelgegevens te visualiseren:

panda's importeren als pd
importeer numpy als np
matplotlib importeren.pyplot als plt
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe,index=["Categorie","Product"],values=["Eenheidsprijs"])
pivot_tble.plot(soort='bar');
plt.tonen()

In de bovenstaande visualisatie hebben we de eenheidsprijs van de verschillende producten samen met categorieën weergegeven.

Conclusie

We hebben onderzocht hoe u een draaitabel uit het dataframe kunt genereren met behulp van Pandas python. Met een draaitabel kunt u diepgaande inzichten in uw datasets genereren. We hebben gezien hoe u een eenvoudige draaitabel kunt genereren met behulp van meerdere indexen en hoe u de filters op draaitabellen kunt toepassen. Bovendien hebben we ook laten zien dat we draaitabelgegevens plotten en ontbrekende gegevens invullen.

Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...
OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...