Pandas & NumPy Academy · Les

DataFrames elementair inspecteren

Gebruik head(), tail(), info(), describe() en shape om snel inzicht te krijgen in de inhoud en structuur van elke DataFrame.

Les 4 van 413 stappen

DataFrames elementair inspecteren is een gratis Pandas & NumPy Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Pandas & NumPy Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Pandas & NumPy Academy bevat in totaal 4 lessen.

De eerste vijf stappen met elke DataFrame

Wanneer je een nieuwe dataset laadt, bespaart een systematische inspectiereeks uren aan foutopsporing. De Pandas-hulpmiddelen hiervoor zijn: head() om de eerste rijen te bekijken, tail() voor de laatste rijen, info() voor kolomtypen en null-waarden, describe() voor statistieken en shape voor de dimensies. Deze vijf controles uitvoeren duurt minder dan een minuut en brengt de meeste problemen met de gegevenskwaliteit direct aan het licht.

import pandas as pd

# Assume df is loaded from a CSV
print(df.shape)   # (rows, cols)
df.head()         # first 5 rows
df.info()         # dtypes + non-null counts
df.describe()     # statistics

head() en tail()

df.head(n) retourneert de eerste n rijen (standaard 5) als een DataFrame. df.tail(n) retourneert de laatste n rijen. Samen helpen ze je te controleren of de gegevens correct zijn ingelezen: controleer of de kolomnamen in de koprij staan, of numerieke kolommen getallen bevatten en of datumreeksen niet verkeerd zijn geïnterpreteerd. Ze wijzigen de gegevens niet en retourneren nieuwe DataFrames.

import pandas as pd

df = pd.DataFrame({'a': range(20), 'b': range(20, 40)})
print(df.head(3))
#    a   b
# 0  0  20
# 1  1  21
# 2  2  22
print(df.tail(2))
#     a   b
# 18 18  38
# 19 19  39

info(): typen en aantallen niet-nullwaarden

df.info() drukt een beknopt overzicht af: het dtype van de index, het aantal niet-nullwaarden per kolom, het dtype van elke kolom en het totale geheugengebruik. Kolommen met minder niet-nullwaarden dan het totale aantal rijen bevatten ontbrekende gegevens. Het dtype object betekent vaak dat het om een tekenreeks-kolom (of een kolom met gemengde typen) gaat die vóór de analyse moet worden opgeschoond.

import pandas as pd
import numpy as np

df = pd.DataFrame({'name': ['A', 'B', None],
                   'score': [80.0, np.nan, 90.0],
                   'grade': ['A', 'C', 'A']})
df.info()
# Column  Non-Null Count  Dtype
# name    2 non-null      object
# score   2 non-null      float64
# grade   3 non-null      object

describe(): statistisch overzicht

df.describe() berekent voor alle numerieke kolommen het aantal, gemiddelde, de standaardafwijking, minimum, 25e, 50e (mediaan) en 75e percentiel en maximum. Geef include='all' door om ook objectkolommen (tekenreeksen) samen te vatten. Geef include='object' door om alleen categorische kolommen samen te vatten. De uitvoer is zelf een DataFrame, dus je kunt deze opslaan of opmaken voor een rapport.

import pandas as pd

df = pd.DataFrame({'age': [25, 30, 35, 40], 'score': [88, 72, 91, 65]})
print(df.describe().round(1))
#        age  score
# count  4.0    4.0
# mean  32.5   79.0
# std    6.5   12.0

shape, ndim en size

df.shape is een tuple (nrows, ncols). df.ndim retourneert voor DataFrames altijd 2. df.size is het totale aantal cellen. Gebruik len(df) voor het aantal rijen (hetzelfde als df.shape[0]). Dit zijn de eenvoudigste controles op de plausibiliteit: bevestig het verwachte aantal rijen na het laden en na elke filterstap.

import pandas as pd

df = pd.DataFrame({'x': range(100), 'y': range(100), 'z': range(100)})
print(df.shape)   # (100, 3)
print(len(df))    # 100
print(df.size)    # 300
print(df.ndim)    # 2

dtypes en select_dtypes()

df.dtypes retourneert een Series die elke kolomnaam aan het bijbehorende dtype koppelt. df.select_dtypes(include='number') retourneert een nieuwe DataFrame met alleen numerieke kolommen. Dit is handig voor het berekenen van correlaties of het toepassen van numerieke transformaties zonder per ongeluk op tekenreekskolommen te werken. Geef exclude='object' door om tekstkolommen te verwijderen.

import pandas as pd

df = pd.DataFrame({'a': [1,2], 'b': [1.0,2.0], 'c': ['x','y']})
print(df.dtypes)
# a      int64
# b    float64
# c     object

numeric = df.select_dtypes(include='number')
print(numeric.columns.tolist())  # ['a', 'b']

isnull() en aantallen null-waarden

df.isnull().sum() geeft het aantal ontbrekende waarden per kolom. Dit is de snelste manier om te vinden welke kolommen moeten worden opgeschoond. Deel door len(df) om het aandeel ontbrekende waarden te berekenen. Een kolom met meer dan 50% ontbrekende waarden vereist vaak een speciale aanpak: verwijder de kolom of pas imputatie toe die specifiek is voor het domein.

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': [1, np.nan, 3], 'b': [np.nan, np.nan, 6]})
print(df.isnull().sum())
# a    1
# b    2
print((df.isnull().sum() / len(df)).round(2))
# a    0.33
# b    0.67

value_counts() op een DataFrame-kolom

De aanroep df['col'].value_counts() geeft een overzicht van de frequentie van elke unieke waarde in die kolom, gesorteerd op aantal. Voeg normalize=True toe voor percentages. Gebruik dropna=False om NaN ook als categorie mee te tellen. Dit is de snelste manier om te controleren op een onevenwichtige verdeling van categorieën of onverwachte waarden in een categorische kolom.

import pandas as pd

df = pd.DataFrame({'status': ['active','inactive','active','active','banned']})
print(df['status'].value_counts())
# active      3
# inactive    1
# banned      1
print(df['status'].value_counts(normalize=True).round(2))

Kolommen en index inspecteren

df.columns.tolist() geeft een gewone Python-lijst met kolomnamen. Dit is handig voor programmatische bewerking of logging. df.index toont de rijlabels en hun type. Controleer df.index.is_unique om te bevestigen dat er geen dubbele rijlabels bestaan. Dat is een vereiste voor veel samenvoegbewerkingen en berekeningen voor tijdreeksen.

import pandas as pd

df = pd.DataFrame({'a': [1,2,3]}, index=['x', 'y', 'z'])
print(df.columns.tolist())     # ['a']
print(df.index.tolist())       # ['x', 'y', 'z']
print(df.index.is_unique)      # True

sample() voor willekeurige inspectie

df.sample(n) retourneert n willekeurig geselecteerde rijen zonder teruglegging. df.sample(frac=0.1) retourneert 10% van de rijen. Stel random_state= in voor reproduceerbaarheid. Willekeurige steekproeven zijn beter dan head() om problemen in het midden van een grote dataset te vinden die mogelijk niet in de eerste paar rijen voorkomen.

import pandas as pd

df = pd.DataFrame({'x': range(1000), 'y': range(1000)})
print(df.sample(3, random_state=42))
print(df.sample(frac=0.005, random_state=0))  # 0.5% of rows

memory_usage() voor geheugengrootte

df.memory_usage(deep=True) retourneert het geheugenverbruik van elke kolom in bytes. deep=True dwingt een nauwkeurige meting af voor kolommen met dtype object, waarvan de tekenreeksen buiten de buffer van de DataFrame staan. Tel de waarden op voor het totale geheugenverbruik. Gebruik dit voor en na het verkleinen van dtypes om te bevestigen dat je het geheugengebruik hebt verminderd.

import pandas as pd

df = pd.DataFrame({'a': range(10000), 'b': [str(i) for i in range(10000)]})
usage = df.memory_usage(deep=True)
print(usage)
print('Total bytes:', usage.sum())

Korte controle

Test je begrip van de basisinspectie van DataFrames uit deze les.

Samenvatting van de les

In deze les heb je geleerd dat head() en tail() je de start en het einde van een DataFrame visueel laten inspecteren, dat info() dtypes en aantallen ontbrekende waarden in één aanroep toont en dat describe() statistische samenvattingen voor numerieke kolommen geeft. Hierna laden we gegevens uit de meest gebruikte bestandsindelingen — CSV, Excel en JSON — in DataFrames.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “DataFrames elementair inspecteren” gratis?

Ja — de volledige tekst van “DataFrames elementair inspecteren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Pandas & NumPy Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Pandas & NumPy Academy bevat in totaal 4 lessen.

Wat leer ik in “DataFrames elementair inspecteren”?

Gebruik head(), tail(), info(), describe() en shape om snel inzicht te krijgen in de inhoud en structuur van elke DataFrame. Je oefent met Pandas & NumPy Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Pandas & NumPy Academy te beginnen?

Ervaring vooraf is niet nodig. Pandas & NumPy Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “DataFrames elementair inspecteren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Pandas & NumPy Academy?

Ja. Elke les over Pandas & NumPy Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. DataFrames maken
  2. Kolommen en rijen selecteren
  3. Kolommen toevoegen en verwijderen
  4. DataFrames elementair inspecteren
← Terug naar Pandas & NumPy Academy