Gegeven een databestand recent-grads.csv met gegevens m.b.t. de tewerkstelling van recent afgestudeerden.

De tellingen zijn gegroepeerd per Major (afstudeerrichting). Elke datarij bestaat uit volgende velden (hieronder ook "kolommen" genoemd):

In het databestand bevat de eerste rij zijn de namen van de velden, daarna volgen 173 data-rijen. Hieronder zie je een schermafdruk van de eerste 6 rijen.

schermafdruk csv
Visuele voorstelling van de eerste 5 records
Hier zie je de eerste 6 rijen in de dataset. De eerste rij bevat de namen van de velden, daarna volgen 173 data-rijen.

Opgave

Databestand

Het databestand is beschikbaar in het working directory van Dodona.

Als je de oefening lokaal wilt maken (in PyCharm of in een Jupyter Notebook), dan moet je het databastand downloaden en bewaren in dezelfde map als je .py of .ipynb bestand.

Je kan het bestand hier downloaden: recent-grads.csv1

Voorbeeld

>>> get_data('recent-grads.csv')
[['Major', 'Major_category', 'Men', 'Women', 'Employed', 'Full_time', 'Part_time', 'Unemployed', 'Median_Wage'],
 ['PETROLEUM ENGINEERING', 'Engineering', 2057, 282, 1976, 1849, 270, 37, 110000],

  ...
  
 ['COUNSELING PSYCHOLOGY', 'Psychology & Social Work', 931, 3695, 3777, 3154, 965, 214, 23400],
 ['LIBRARY SCIENCE', 'Education', 134, 964, 742, 593, 237, 87, 22000]]
>>> data = get_data('recent-grads.csv')

>>> get_col('Women', data)
[282, 77, 131, 135, 11021, ..., 2332, 2270, 3695, 964]
>>> get_col('women', data)
'field women not found'
>>> get_category('Health', data)
[['Major', 'Major_category', 'Men', 'Women', 'Employed', 'Full_time', 'Part_time', 'Unemployed', 'Median_Wage'],
 ['NURSING', 'Health', 21773, 187621, 180903, 151191, 40818, 8497, 48000],
 ['MEDICAL TECHNOLOGIES TECHNICIANS', 'Health', 2794, 2145, 13150, 11510, 2665, 505, 45000],
 ['MEDICAL ASSISTING SERVICES', 'Health', 500, 109, 9168, 5643, 4107, 407, 42000],
 ['PHARMACY PHARMACEUTICAL SCIENCES AND ADMINISTRATION', 'Health', 25463, 20957, 16620, 12537, 5346, 977, 40000],
 ['MISCELLANEOUS HEALTH MEDICAL PROFESSIONS', 'Health', 413, 973, 10076, 7514, 4145, 893, 36000],
 ['NUTRITION SCIENCES', 'Health', 4944, 8719, 13217, 9601, 6648, 975, 35000],
 ['HEALTH AND MEDICAL ADMINISTRATIVE SERVICES', 'Health', 2817, 9479, 15419, 13534, 3299, 1518, 35000],

...

 ['COMMUNICATION DISORDERS SCIENCES AND SERVICES', 'Health', 11376, 27468, 29763, 19975, 13862, 1487, 28000]]
>>> get_percentage_women('Health', data)
0.7672971750078691
>>> get_percentage_women('Engineering', data)
0.22759232304147908
>>> get_percentage_women('Python', data)
'category Python empty'

Opmerking: Grafische weergave

Gebruik makend van de functies die je hier geprogrammeerd hebt, is het vrij eenvoudig om een grafiekje te maken van het percentage van vrouwen in elk studiegebied. Hieronder zie je een schermafdruk van een Jupyter Notebook waarin de functies get_data, get_col en get_percentage_women in voorgaande cellen gedefinieerd zijn.

percentage vrouwen
Grafische voorstelling van het percentage vrouwen in elk studiegebied
Jupyter notebook met grafische voorstelling van het percentage vrouwen in elk studiegebied.

Geïnteresseerde studenten kunnen deze code overnemen in een Jupyter notebook om te experimenteren. Meer info en tutorials over matplotlib vind je hier: https://matplotlib.org/tutorials/index.html2. (Dit maakt geen deel uit van de examenleerstof.)