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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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 pdimporteer 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.