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