Excel is veruit het populairste programma om data mee te analyseren. Het is dan ook niet gek dat je als Data Scientist vaak te maken krijgt met de noodzaak om Excel-bestanden te openen met / importeren in Python. Dit kan eenvoudig met het package Pandas.
In deze blog leer je:
- Wat is Pandas en waarom gebruik ik dit package voor het openen van Excel-bestanden?
- Wat kan ik met de .read_excel() functie?
- Een voorbeeld van het openen van een xlsx-bestand met Python
Wat is Pandas en waarom gebruik ik dit package voor het openen van Excel-bestanden?
Binnen het ecosysteem van Python zijn veel packages vrij beschikbaar. Met deze packages kun je eenvoudig beschikking krijgen over bepaalde voorgeprogrammeerde functionaliteit. Het package Pandas is ontwikkeld om data-analyse te vergemakkelijken en het wordt ingezet in vrijwel ieder data science vraagstuk waarin Python een rol speelt.
Zo kun je met Pandas eenvoudig data importeren uit verschillende bronnen (e.g. csv bestanden openen / data uit sql database halen), data cleanen, data manipuleren, inzichten visualiseren, of data in verschillende bestandstypen opslaan.
Lees hier meer over hoe je Pandas installeert en wat je verder met het package kunt doen
Uiteraard is het van belang om Python te installeren voordat je Pandas installeert. Beiden zijn eenmalige handelingen. Om nieuwere Excel-bestanden (.xlsx) te kunnen openen is het ook van belang dat je openpyxl hebt geïnstalleerd. Die doe je door onderstaande opdracht in te geven in de command line:
pip install openpyxl
Wat kan ik met de pandas.read_excel() functie?
Als bovenstaande installaties succesvol zijn uitgevoerd ben je in staat om Excel-bestanden te openen met Pandas in Python. Je gebruikt pandas.read_excel() hiervoor.
Deze functie leest een Excel-bestand en importeert de data in een Pandas DataFrame. Verschillende bestandstypen (xls, xlsx, xlsm, xlsb, odf, ods, odt) kunnen vanaf jouw systeem of vanaf een URL gelezen worden. Je kunt een enkele sheet of meerdere sheets importeren.
Onder andere de volgende parameters zijn te gebruiken binnen pandas.read_excel():
- Je start altijd met een string waarin je de locatie op jouw systeem of bijvoorbeeld URL aangeeft. Hiermee geef je aan waar het te openen Excel-bestand zich bevindt
- sheet_name: hiermee kun je aangeven welke sheet je wilt openen. Je kunt zowel een integer als een string (met sheet-naam) ingeven
- header: hiermee geef je aan welke rij (0-indexed) de te gebruiken column-namen bevat.
- names: hiermee kun je een lijst van te importeren columns ingeven.
- index_col: hiermee geef je aan welke column als index gebruikt kan worden in het Pandas DataFrame
Er zijn nog veel meer mogelijke parameters te gebruiken. Deze helpen je bijvoorbeeld met: het herkennen van data types, het overslaan van bepaalde rijen, omgaan met missende waarden, het herkennen van datums, of het correct verwerken van punten en commas die in getallen kunnen staan (als tekst).
Een voorbeeld van het openen van een xlsx-bestand met Python
We gaan nu een Excel-bestand openen in Python met Pandas. Het gaat om dit bestand dat data over Hockey Spelers uit Canada en Amerika bevat.
We werken in dit voorbeeld in Jupyter Notebook.
Start met het importeren van Pandas. Het is conventie om het op onderstaande wijze te doen.
import pandas as pd
Zoals je in het Excel-bestand kunt zien hebben we enkele uitdagingen:
- De eerste sheet bevat uitleg en je wilt eigenlijk de data uit de tweede sheet in een DataFrame hebben. Daarom gebruiken we sheet_name="HockeyPlayers" als input.
- De tweede sheet heeft column-namen op de derde rij staan. Hierom gebruiken we header=2.
- De column ID kan worden gebruikt als index in de DataFrame. Dit verwerken we met index_col=0.
df = pd.read_excel('sampledatahockey.xlsx', sheet_name="PlayerData", header=2, index_col=0)
df.head()
Team | Country | NameF | NameL | Weight | Height | DOB | Hometown | Prov | Pos | Age | HeightFt | HtIn | BMI | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | ||||||||||||||
1 | Women | Canada | Meghan | Agosta | 148 | 5'7 | 1987-02-12 | Ruthven | Ont. | Forward | 34 | 5.583333 | 67 | 23 |
2 | Women | Canada | Rebecca | Johnston | 148 | 5'9 | 1989-09-24 | Sudbury | Ont. | Forward | 31 | 5.750000 | 69 | 22 |
3 | Women | Canada | Laura | Stacey | 156 | 5'10 | 1994-05-05 | Kleinburg | Ont. | Forward | 27 | 5.833333 | 70 | 22 |
4 | Women | Canada | Jennifer | Wakefield | 172 | 5'10 | 1989-06-15 | Pickering | Ont. | Forward | 32 | 5.833333 | 70 | 25 |
5 | Women | Canada | Jillian | Saulnier | 144 | 5'5 | 1992-03-07 | Halifax | N.S. | Forward | 29 | 5.416667 | 65 | 24 |
Conclusie
Je hebt gezien hoe makkelijk het is om Excel-bestanden te openen met Python. Bovendien heb je gezien dat er veel mogelijkheden zijn om het DataFrame dat je verkrijgt helemaal naar jouw voorkeuren aan te passen.
Interessant: wist je dat je Python ook in Excel kunt gebruiken?
Wil je nog veel meer leren over met mogelijkheden met Python voor Data Science? Schrijf je dan in voor onze Python cursus voor data science, onze machine learning training, of voor onze data science opleiding en leer met vertrouwen te programmeren en analyseren in Python. Nadat je een van onze trainingen hebt gevolgd kun je zelfstandig verder aan de slag. Je kunt ook altijd even contact opnemen als je een vraag hebt.
Download één van onze opleidingsbrochures voor meer informatie
Rik is data scientist en marketeer bij Data Science Partners. Vanuit zijn achtergrond op de Technische Universiteit Eindhoven heeft hij veel affiniteit met data. Na zijn studie heeft hij als consultant altijd met data gewerkt en tevens ervaring opgedaan in het geven van trainingen.