Voor deze oefening maken we gebruik van een dataset met de resultaten van een bevraging bij 3755 data scientists betreffende hun functie en salaris tussen 2020 en 2023.
We werken met een bestand dat werd gedownload vanop Kaggle via deze link: https://www.kaggle.com/datasets/arnabchaki/data-science-salaries-2023/data1
Hieronder de eerste regels van het bestand "ds_salaries.csv".
De dataset bevat volgende gegevens voor 3755 data scientists:
Het bestand is beschikbaar in het working directory van Dodona. Om te debuggen in PyCharm of in een Jupyter Notebook) zal je het bestand moeten downloaden en bewaren in dezelfde map als je .py of .ipynb bestand.
Je kan het bestand hier downloaden:
gegevens
Schrijf een functie gegevens met één argument: een landcode (string)
De functie leest het databestand in en retourneert een geneste lijst.
Voor elke data scientist uit dit land (employee_residence) wordt een sublijst toegevoegd met drie elementen: jaartal (int), experience_level (string) en salaris in USD (int). De sublijsten staan in dezelfde volgorde als ze voorkomen in de dataset.
Als er geen records zijn voor het opgegeven land, dan retourneert de functie een lege lijst.
>>> gegevens("BE") [[2022, 'EN', 50000], [2022, 'EN', 84053], [2022, 'EN', 52008], [2021, 'SE', 82744], [2021, 'MI', 88654]] >>> gegevens("XX") []
hoogste_loon
Schrijf een functie hoogste_loon met twee argumenten: een landcode (string) en een jaartal (int).
De functie haalt de gegevens op van het land en gaat na wat het hoogste gerapporteerde loon (in USD) is per experience level in dat land voor dit jaartal.
De functie retourneert een dictionary met als sleutels de experience levels waarvoor er minstens één respondent is voor dit land en jaartal.
Als er geen respondenten zijn voor dit land, dan retourneert de functie de string
"Er zijn geen respondenten uit dit land"
Als er wel respondenten zijn voor dit land, maar geen enkele voor dit jaartal, dan retourneert de functie de string
"Er zijn geen gegevens uit dit land voor dit jaar"
>>> hoogste_loon('BE', 2021) {'SE': 82744, 'MI': 88654} >>> hoogste_loon('BE', 2039) 'Er zijn geen gegevens uit dit land voor dit jaar' >>> hoogste_loon('XX', 2021) 'Er zijn geen respondenten uit dit land'