Pandas installeren en je eerste tabel
Pandas zit niet standaard bij Python. Een virtuele omgeving aanmaken, installeren met pip, de versie controleren en met de hand je eerste DataFrame bouwen.
Hoe wil je leren?
Het probleem dat we oplossen
De inkomsten van een winkel over drie maanden staan in een CSV-bestand — twaalfduizend rijen. De vraag is simpel: welk product is het meest verkocht?
Je zou het kunnen doen met de Python die je al kent. Open het bestand, lees elke regel, splits op de komma's, zet ze om naar getallen en tel ze een voor een bij elkaar op. Veertig regels code, met bij elke stap de kans om een fout te maken.
In pandas zijn het twee regels. Omdat pandas Python iets geeft wat het daarvoor nog niet had: een tabel. Een heel raster van rijen en kolommen wordt bewaard als één enkele waarde, en optellen, filteren en sorteren is telkens één bewerking.
Toch is het goed om eerst één ding helder te hebben. print, len en input worden meegeleverd met Python. Pandas niet. Het moet apart worden geïnstalleerd, en als je niet precies begrijpt waar het wordt geïnstalleerd, strand je op dag één met een fout waarvan de oorzaak lastig te zien is.
Aan het einde van dit hoofdstuk kun je
- Vertellen wat de eigen library van Python onderscheidt van een extern package
- Een virtuele omgeving aanmaken en activeren voor een project
- Pandas installeren met
pipen de versie verifiëren - Zelf met de hand je eerste
DataFramebouwen en printen - Een
ModuleNotFoundErrorlezen en precies vertellen wat er misging
Voorkennis: uit de Python-cursus, de terminal, mappen en je eerste project en variabelen en types.
Pandas is geen onderdeel van Python
Wat standaard met Python meekomt, heet de standard library — print, len, math, random horen daar allemaal bij. Pandas niet. Het is een extern package, geschreven door anderen en gepubliceerd in een repository genaamd PyPI.
De tool die het ophaalt is pip, en die zit wél standaard bij Python.
En dat roept de eerste vraag op, die later voor problemen zorgt als je hem overslaat: waar geïnstalleerd?
Waarom een virtuele omgeving
Typ pip install pandas en pandas belandt in de Python voor je hele computer. Voor één project werkt dat. Maar over zes maanden, wanneer een tweede project een andere versie van pandas nodig heeft, strijden die twee om dezelfde plek — en het repareren van het ene sloopt het andere.
De oplossing is een aparte ruimte per project: een virtuele omgeving. Het is eigenlijk gewoon een normale map binnen het project waarin de packages van dat project staan. Verwijder het project en de packages verdwijnen mee, terwijl de hoofd-Python van je computer schoon blijft.
In de terminal, terwijl je in je projectenmap staat:
cd D:\python-lab
mkdir pandas-lab
cd pandas-lab
python -m venv .venvActiveer hem nu:
.venv\Scripts\activateZodra hij actief is, verschijnt de naam van de ruimte vooraan in de prompt:
(.venv) PS D:\python-lab\pandas-lab>Die(.venv)is waar het allemaal om draait. Als je dat niet ziet, sta je buiten de omgeving en zalpip installhet package ergens anders neerzetten. Elke nieuwe terminal moet opnieuwactivateuitvoeren — dit stel je niet eenmalig in om het vervolgens te vergeten.
Als PowerShell klaagt dat het uitvoeren van scripts is uitgeschakeld, voer dit dan eenmalig uit:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedOm de omgeving te verlaten, typ je deactivate.
Installeren, daarna verifiëren
pip install pandasEen paar seconden later is het klaar met Successfully installed .... Merk op dat NumPy samen met pandas werd gedownload — pandas gebruikt NumPy onder de motorkap, en pip lost die dependencies voor je op.
Verifieer het nu. Maak een bestand genaamd check.py:
import pandas as pd
print(pd.__version__)2.2.3Jouw nummer kan anders zijn, en dat is prima. Waar het om gaat is dat er überhaupt een versienummer werd geprint — dat betekent dat Python pandas heeft gevonden.
Twee opmerkingen over die regel import pandas as pd. import pandas haalt pandas binnen; as pd geeft het een korte naam. De naam pd is niet verplicht, maar vrijwel alle pandas-code ter wereld gebruikt hem — dus iets anders schrijven maakt je code lastiger leesbaar voor anderen. Neem de conventie gewoon over.
Een compleet voorbeeld
first_frame.py:
import pandas as pd
# A DataFrame from a dictionary: each key is a column name,
# each list is that column's values, top to bottom.
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales)product quantity price
0 pen 12 15.0
1 notebook 5 60.0
2 bag 2 850.0Kijk goed naar wat er geprint is, want elk onderdeel daarvan is van belang in de volgende hoofdstukken.
Bovenaan staan de kolomnamen — product, quantity, price. Aan de linkerkant staan 0, 1, 2. Dat is geen kolom; het is de index, de namen van de rijen. Je hebt ze niet in de dictionary geschreven; pandas heeft ze zelf toegevoegd, tellend vanaf nul.
En let op de 15.0 in de kolom price. Je hebt 15.0 geschreven, waardoor de hele kolom als kommagetallen wordt geprint, ook al had 850.0 een geheel getal kunnen zijn. Elke waarde in een kolom deelt één type — een centrale regel in pandas en het hoofdonderwerp van het volgende hoofdstuk.
Nu we de tabel hebben, is het eenvoudig om er dingen aan te vragen:
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)
print(sales["quantity"].sum())(3, 3)
19shape geeft aan hoe groot de tabel is — drie rijen, drie kolommen, in die volgorde. En sales["quantity"].sum() telt elke waarde in één kolom bij elkaar op. Bij twaalfduizend rijen zou die regel precies hetzelfde zijn, en dat is dé reden om pandas überhaupt te leren.
Wanneer het misgaat
ModuleNotFoundError: No module named 'pandas' Python kon pandas niet vinden. Vrijwel altijd betekent dit dat de plek waar het geïnstalleerd is en de plek van waaruit het programma draait niet hetzelfde zijn. Controleer de prompt op (.venv); als dit ontbreekt, voer dan activate uit en draai het opnieuw. Als de omgeving actief is, laat pip list zien of pandas er echt staat.
'pip' is not recognized as an internal or external command pip staat niet op PATH. Typ in plaats daarvan python -m pip install pandas — dat roept pip aan via de actieve Python, waardoor het werkt zonder PATH en er geen twijfel bestaat over in welke Python wordt geïnstalleerd.
.venv\Scripts\activate : File cannot be loaded because running scripts is disabled Een beveiligingsbeleid van PowerShell. Voer eenmalig Set-ExecutionPolicy -Scope CurrentUser RemoteSigned uit en probeer het daarna opnieuw in een nieuwe terminal.
Alles werkt, maar de editor toont rode golflijntjes De editor kijkt waarschijnlijk naar een andere Python. In VS Code: Ctrl + Shift + P → Python: Select Interpreter → kies degene in de .venv van het project. Als het programma in de terminal draait, is de code in orde — de rode streep is een vergissing van de editor.
NameError bij het schrijven van DataFrame Het moet pd.DataFrame zijn, niet DataFrame alleen. import pandas as pd haalt de hele library binnen onder de naam pd, dus alles daarin bereik je via pd..
Stap 4 van 6 — Voorspellen
Test je begrip
Wat print shape, en in welke volgorde staan de twee getallen?
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)- A(3, 4)
- B(3, 3)
- C3 rows, 3 columns
- D(3,)
Wat betekent het als je (.venv) vooraan in de prompt ziet staan?
- APython draait in een speciale veilige modus
- BJe staat in de map genaamd `.venv`
- CDe virtuele omgeving is actief in deze terminal — `pip install` installeert nu in de ruimte van dit project
- DPandas is klaar met installeren
pip install pandas is geslaagd, maar de volgende dag meldt een nieuwe terminal bij het uitvoeren van hetzelfde bestand ModuleNotFoundError: No module named 'pandas'. Wat is de meest waarschijnlijke oorzaak?
- ADe installatie is eigenlijk mislukt
- BGeïnstalleerde packages worden gewist wanneer de computer wordt afgesloten
- CIn het bestand staat `import pandas` in plaats van `import pandas as pd`
- DDe nieuwe terminal heeft de omgeving nooit geactiveerd, dus er draait een andere Python — eentje zonder pandas
Voor antwoorden heb je een account nodig
Log in om je antwoorden te controleren
De vragen staan hierboven, en ze in je hoofd uitwerken is waar het om draait. Log in om de antwoorden, de uitleg en de hints in drie niveaus te zien.
Jouw beurt
Maak een nieuwe map aan, maak daarin je eigen virtuele omgeving en installeer pandas. Schrijf vervolgens een bestand genaamd stock.py met:
- Een
DataFramevan minstens vier producten met drie kolommen — één tekst, één geheel getal, één decimaal getal - De hele tabel geprint
shapegeprint, met het aantal rijen en kolommen- De som van beide numerieke kolommen geprint
Maak het daarna met opzet stuk: typ deactivate in de terminal om de omgeving te verlaten en voer het bestand opnieuw uit. Welke foutmelding verschijnt er, en wat vertelt die je precies?
Sla die laatste stap niet over. Je zult ModuleNotFoundError nog vaak tegenkomen, en door hem vandaag met opzet op te roepen herken je de oorzaak de volgende keer binnen één seconde.
Stap 6 van 6
Uitdaging — de hoofdstukquiz
Tien vragen van makkelijk naar moeilijk. De laatste zijn met opzet lastig.
Log in om de quiz te maken