Draaitabellen blijven een van de meest gerespecteerde en meest gebruikte tools binnen MS Excel. Of je nu een data-analist, data-engineer of gewoon een gewone gebruiker bent, de kans is groot dat je al een zwak hebt voor MS Excel.

Desalniettemin is er steeds meer ruimte voor het repliceren van de tools en hulpprogramma's van MS Excel, vooral in Python. Wist je dat je met een paar regels code zelf uitgebreide draaitabellen kunt maken in Python's DataFrames?

Ja dat is correct; als je geïntrigeerd bent, kun je dit als volgt doen.

Vereisten voor het maken van draaitabellen

Net als elke andere programmeertaal, moet zelfs Python aan een paar vereisten voldoen voordat je kunt gaan coderen.

Om de meest geoptimaliseerde ervaring te krijgen tijdens het maken van je allereerste draaitabel in Python, heb je het volgende nodig:

  • Python-IDE: De meeste Python-codes hebben een geïntegreerde ontwikkelomgeving (IDE) die vooraf op hun systeem is geïnstalleerd. Er zijn meerdere Python-compatibele IDE's op de markt, waaronder Jupyter Notebook, Spyder, PyCharm en vele anderen.
  • instagram viewer
  • Voorbeeldgegevens: Ter illustratie vindt u hier een voorbeeldgegevensset waaraan u kunt werken. U kunt deze codes ook rechtstreeks op uw live gegevens aanpassen.

Gegevensvoorbeeldlink:Voorbeeld Superstore

De essentiële bibliotheken importeren

Omdat Python werkt met het concept van bibliotheken van derden, moet je de Panda's bibliotheek voor het maken van pivots.

U kunt panda's gebruiken om: een Excel-bestand importeren in Python en sla de gegevens op in een DataFrame. Gebruik de om Panda's te importeren importeren commando op de volgende manier:

importeren panda's net zo pd

Draaipunten maken in Python

Omdat de bibliotheek nu beschikbaar is, moet je het Excel-bestand in Python importeren, wat de basis is voor het maken en testen van pivots in Python. Sla de geïmporteerde gegevens op in een DataFrame met de volgende code:

# Maak een nieuw DataFrame
# vervang hier door je eigen pad
pad = "C://Gebruikers//gebruiker/OneDrive//Desktop//"
# u kunt hier de bestandsnaam definiëren
bestand = "Voorbeeld - Superstore.xls"
df = pd.read_excel (pad + bestand)
df.hoofd()

Waar:

  • ff: Variabelenaam om de DataFrame-gegevens op te slaan
  • pd: Alias ​​voor Panda's bibliotheek
  • read_excel(): Panda's functie om een ​​Excel-bestand in Python te lezen
  • pad: De locatie waar het Excel-bestand is opgeslagen (Voorbeeld Superstore)
  • het dossier: Bestandsnaam om te importeren
  • hoofd(): Geeft standaard de eerste vijf rijen van het DataFrame weer

De bovenstaande code importeert het Excel-bestand in Python en slaat de gegevens op in een DataFrame. eindelijk, de hoofd functie geeft de eerste vijf rijen gegevens weer.

Deze functie is handig om ervoor te zorgen dat de gegevens correct in Python worden geïmporteerd.

Welke draaitabelvelden zijn er in Python?

Net als zijn Excel-tegenhanger heeft een draaitabel een vergelijkbare set velden in Python. Hier zijn een paar velden die u moet kennen:

  • Gegevens: Het gegevensveld verwijst naar de gegevens die zijn opgeslagen in een Python DataFrame
  • Waarden: Kolomgegevens gebruikt binnen een spil
  • Inhoudsopgave: Een indexkolom(men) voor het groeperen van de gegevens
  • kolommen: Kolommen helpen bij het samenvoegen van de bestaande gegevens binnen een DataFrame

Doel achter het gebruik van de indexfunctie

Aangezien de indexfunctie het primaire element van een draaitabel is, retourneert deze de basislay-out van de gegevens. Met andere woorden, u kunt uw gegevens groeperen met de inhoudsopgave functie.

Stel dat u enkele geaggregeerde waarden wilt zien voor de producten die worden vermeld in de Segment kolom. U kunt een vooraf gedefinieerd aggregaat (gemiddelde waarde) in Python berekenen door de aangewezen kolom als een indexwaarde te definiëren.

df.pivot_table (index = "Segment")

Waar:

  • df:DataFrame met de gegevens
  • pivot_table:Pivot table-functie in Python
  • inhoudsopgave: Ingebouwde functie voor het definiëren van een kolom als index
  • Segment: Kolom om als indexwaarde te gebruiken

De variabelenamen van Python zijn hoofdlettergevoelig, dus vermijd overstappen van de vooraf gedefinieerde variabelenamen die in deze handleiding worden vermeld.

Multi-indexwaarden gebruiken

Als u meerdere indexkolommen wilt gebruiken, kunt u de kolomnamen definiëren in a lijst binnen de indexfunctie. Het enige wat u hoeft te doen is de kolomnamen specificeren binnen een set van vierkante haakjes ([ ]), zoals hieronder weergegeven:

df.pivot_table (index = ["Categorie", "Subcategorie"])

De spilfunctie laat de indexkolom in de uitvoer inspringen. Python geeft de. weer gemeen van alle numerieke waarden tegen elke indexwaarde.

Leer de waarden in de uitvoer te beperken

Aangezien Python standaard alle numerieke kolommen kiest, kunt u de waarden beperken om de resultaten in de uiteindelijke uitvoer aan te passen. Gebruik de waarden functie om de kolommen te definiëren die u wilt zien.

df.pivot_table (index = ["Regio", "Categorie", "Subcategorie"], waarden = "verkoop")

In de uiteindelijke uitvoer zullen er drie indexkolommen zijn en de gemiddelde waarden voor de kolom Verkoop tegen elk element.

Geaggregeerde functies definiëren in draaitabel

Wat gebeurt er als u de gemiddelde waarden niet standaard wilt berekenen? De draaitabel heeft veel andere functionaliteiten, die verder gaan dan het berekenen van een eenvoudig gemiddelde.

Zo schrijft u de code:

df.pivot_table (index = ["Categorie"], waarden = "verkoop", aggfunc = [som, max, min, len])

Waar:

  • som: Berekent de som van waarden
  • maximaal: Berekent de maximale waarde
  • min: Berekent de maximale waarde
  • len: Berekent het aantal waarden

U kunt elk van deze functies ook in afzonderlijke coderegels definiëren.

Eindtotalen toevoegen aan de draaitabel

Geen enkel gegevensitem is compleet zonder de eindtotalen. Om de eindtotalen per gegevenskolom te berekenen en weer te geven, gebruikt u de marges en margins_name functie.

df.pivot_table (index = ["Categorie"], waarden = "verkoop", aggfunc = [som, max, min, len], margins=True, margins_name='Eindtotalen')

Waar:

  • marges: Functie voor het berekenen van het eindtotaal
  • margins_name: Geef de naam van de categorie op in de indexkolom (bijvoorbeeld Eindtotalen)

Wijzig en gebruik de definitieve code

Hier is de laatste code kort:

importeren panda's net zo pd
# vervang hier door je eigen pad
pad = "C://Gebruikers//gebruiker/OneDrive//Desktop//"
# u kunt hier de bestandsnaam definiëren
bestand = "Voorbeeld - Superstore.xls"
df = pd.read_excel (pad + bestand)
df.pivot_table (index = ["Regio", "Categorie", "Subcategorie"], waarden = "verkoop",
aggfunc = [som, max, min, len],
marges=WAAR,
margins_name='Eindtotalen')

Draaitabellen maken in Python

Wanneer je draaitabellen gebruikt, zijn de mogelijkheden simpelweg eindeloos. Met Python kun je eenvoudig grote data-arrays verwerken zonder je zorgen te maken over datadiscrepanties en systeemvertragingen.

Omdat de functionaliteiten van Python niet beperkt zijn tot het condenseren van gegevens in pivots, kun je meerdere Excel-werkmappen en -bladen combineren, terwijl je een reeks gerelateerde functies uitvoert met Python.

Met Python is er altijd iets nieuws aan de horizon.