Wat is een DataFrame?
Een DataFrame is eigenlijk een soort Excel-tabel binnen Python. Het bestaat uit rijen en kolommen en helpt je om data gestructureerd te analyseren. Je kunt het zien als een slimme versie van een spreadsheet.
Je kunt een DataFrame eenvoudig zelf maken:
import pandas as pd
# Simpele dataset maken
data = {'Naam': ['Alice', 'Bob', 'Charlie'],
'Leeftijd': [25, 30, 35],
'Salaris': [50000, 60000, 70000]}
# DataFrame aanmaken
df = pd.DataFrame(data)
print(df)
Uitvoer:
Naam Leeftijd Salaris
0 Alice 25 50000
1 Bob 30 60000
2 Charlie 35 70000
Dit is een simpele tabel met drie kolommen: Naam, Leeftijd, en Salaris.
Je kunt het ook importeren:
# CSV-bestand inlezen
df_csv = pd.read_csv('bestand.csv')
# Excel-bestand inlezen
df_excel = pd.read_excel('bestand.xlsx')
# Tekstbestand (met tab als delimiter) inlezen
df_txt = pd.read_csv('bestand.txt', delimiter='\t')
Handige Pandas-functies voor auditors
Laten we nu aan de slag gaan. Ik laat je graag enkele handige functies zien, die je werk makkelijker maken.
1. Data snel verkennen
Voordat je een dataset analyseert, wil je weten hoe deze eruitziet. Gebruik dan deze commando's:
df.head() # Toont de eerste 5 rijen
df.info() # Geeft informatie over het datatype van de kolommen
df.describe() # Geeft statistieken zoals gemiddelde, min en max
2. Filteren van data
Het kan best zijn dat je een sub-tabel wil maken die alleen specifieke data bevat. Dat kan heel gemakkelijk door een filter te plaatsen.
hoge_salarissen = df[df['Salaris'] > 55000]
print(hoge_salarissen)
hoge_salarissen is ook een dataframe, waardoor je hier dezelfde functies op kan toepassen.
3. Dubbele waarden vinden
Wil je controleren of er dubbele factuurnummers in een dataset staan?
duplicaten = df[df.duplicated(['Factuurnummer'], keep=False)]
print(duplicaten)
4. Waarden tellen
Welke afdelingen komen het meest voor in een dataset?
afdelingen['Afdeling'].value_counts()
5. Gegevens groeperen met groupby (Draaitabel-functionaliteit)
De draaitabel wordt veel gebruikt met Excel, maar je kunt het ook gemakkelijk genereren met python. Wil je bijvoorbeeld snel totalen of gemiddelden per categorie berekenen, zoals het gemiddelde salaris per afdeling? Gebruik dan de groupby-functie:
gemiddeld_salaris_per_afdeling = df.groupby('Afdeling')['Salaris'].mean()
print(gemiddeld_salaris_per_afdeling)
Dit groepeert de gegevens op basis van de 'Afdeling'-kolom en berekent het gemiddelde salaris per groep. Je kunt ook meerdere berekeningen toevoegen:
df.groupby('Afdeling').agg({'Salaris': ['mean', 'sum', 'count']})
Dit geeft je niet alleen het gemiddelde, maar ook de som en het aantal medewerkers per afdeling.
6. Data exporteren naar Excel
Na je analyse wil je het resultaat vaak in Excel delen. Dat doe je zo:
df.to_excel('audit_resultaten.xlsx', index=False)
Hoe combineer je datasets? (Merge)
Dan even wat lastiger. Soms heb je data verspreid over meerdere tabellen en wil je deze samenvoegen. Pandas heeft hiervoor de merge-functie, vergelijkbaar met een VLOOKUP in Excel, maar veel krachtiger.
Stel, je hebt een dataset met medewerkers en een aparte dataset met hun afdelingen:
# Eerste dataset: medewerkers
medewerkers = pd.DataFrame({
'ID': [1, 2, 3],
'Naam': ['Alice', 'Bob', 'Charlie']
})
# Tweede dataset: afdelingen
afdelingen = pd.DataFrame({
'ID': [1, 2, 3],
'Afdeling': ['Finance', 'IT', 'Audit']
})
# Merge de datasets op de ID-kolom
resultaat = pd.merge(medewerkers, afdelingen, on='ID')
print(resultaat)
Uitvoer:
ID Naam Afdeling
0 1 Alice Finance
1 2 Bob IT
2 3 Charlie Audit
Met pd.merge() combineer je eenvoudig datasets op basis van een gemeenschappelijke kolom, zoals een ID-nummer. Dit bespaart veel tijd bij het analyseren van auditdata! Het kan ook zijn dat je twee kolommen hebt die je wil matchen, die verschillend heten. Gebruik dan het left_on en right_on argument:
resultaat = pd.merge(medewerkers, afdelingen, left_on='Medewerker_ID', right_on='EmployeeID')
Conclusie
Zó, dit was echt een enorme snelcursus Pandas, maar ik hoop dat je door hebt dat het heel handig is. Wil je meer leren? Begin dan met kleine datasets en probeer zelf wat analyses uit. En dan zul je ongetwijfeld merken dat Pandas het werk niet alleen makkelijker, maar ook een stuk leuker maakt!