|
|
Im Herz dieses Repositories stehen die Jupyter Notebooks, welche die Daten bereinigen und die Ergebnisse generieren. Man sollte sie in folgender Reihenfolge ausführen:
|
|
|
|
|
|
```mermaid
|
|
|
graph TD
|
|
|
A[cleanup]
|
|
|
B[old-report]
|
|
|
C[pipeline]
|
|
|
|
|
|
A --> B
|
|
|
A --> C
|
|
|
```
|
|
|
|
|
|
Diese Wikiseite erklärt dir nur Teile des Codes, die dafür da sind verändert oder erweitert zu werden. Falls du mehr Informationen zu dem gesamten Code möchtest, schau dir die Markdown Zellen in den Dateien selbst an.
|
|
|
|
|
|
[TOC]
|
|
|
|
|
|
## cleanup.ipynb
|
|
|
|
|
|
Hier werden die Rohdaten aus `raw_data` eingelesen und verarbeitet. In dieser Datei werden alle Veränderungen gemacht, die keine zusätzlichen Informationen generieren.
|
|
|
|
|
|
### Unnötige Spalten entfernen
|
|
|
|
|
|
Da die Pipeline nicht jede Spalte aus den Rohdaten benötigt, werden hier diese überflüssigen Spalten entfernt. Hierfür wird eine Liste mit den Spaltennamen genommen und mit `df.drop(columns=liste, inplace=True, axis=1)` entfernt.
|
|
|
|
|
|
Außerdem können hier auch Duplikate entfernt werden, die auf `.NUMMER` enden. Hier wird auch wieder eine Liste genommen, welche diesmal aber für jeden eintrag mit duplikaten erweitert werden, die mit `.1` bis `.7` enden. Die überarbeitet Liste wird dann in die oben genannte Liste gepackt um die generierten Spalten mit zu entfernen.
|
|
|
|
|
|
Solltest du irgendwo eine Endung größer als sieben sehen, erweiter die `range` Funktion in der Datei.
|
|
|
|
|
|
### Kurstypen normalisieren
|
|
|
|
|
|
Valide Kurstypen sind entweder `VL`, `S`, `Ü` oder `LeKo`. Allerding haben alte Daten ab und an mal Typen wie `Vl`, `V`, `VL+Ü`, etc. Das Skript führt eine Funktion über die Kurstypen Spalte aus, welche mithile eines dictionaries falsche Typen zu den validen vier umbenennt.
|
|
|
Solltest du Typen finden, die du umbenennen willst, dann füge sie zu `normalized_identifier` in der `normalize_type` Funktion hinzu.
|
|
|
|
|
|
### Kurskategorie normalisieren
|
|
|
|
|
|
Mithilfe derselben Strategie wie bei den Kurstypen, werden hier Nomen im Singular zum Plural gemacht. Sollten in der Spalte auch Abkürzungen sein, werden sie automatisch zum Nomen geändert.
|
|
|
Sollten dir weitere falsche werde auffallen, dann erweiter `make_plural` oder `normalized_categories`
|
|
|
|
|
|
## old-report.ipynb
|
|
|
|
|
|
Hier wird der aktuelle Evaluationsbericht generiert. Aus `clean_data` werden die benötigen werte in den Report für das angegebene Semester umgewandelt und in `outputs` gepackt. Um zu ändern welches Semester generiert wird, kann die `SEMESTER` Variable mit dem Wunschsemester ersetzt werden. Dafür sollten Semester ausgeschrieben sein, wie z.B. "Sommersemester 2021" oder "Wintersemester 2022/23".
|
|
|
|
|
|
## pipeline.ipynb
|
|
|
|
|
|
The Evaluationsbericht Pipeline nimmt saubere Daten aus `clean_data` und bereitet sie vor um sie in die API einzufügen. Hierbei werden die Likert Saklen von 1 bis 7 in werte umgewandelt, die den Wert der Antwort darstellen. Neutrale Antworten geben 0 Punkte, negative Antworten Minuspunkte und postive Antworten Pluspunkte.
|
|
|
|
|
|
Die Pipeline berechnet nur die Punktzahl für Spalten, die vom cleanup Skript in eine UUID umgewandelt wurde. Sollten dir Fragen fehle, folge den Schritten in der [API Dokumentation](API) um neue Fragen in die Datenbank hinzuzufügen, welche dann automatisch von diesem und dem cleanup Skript berücksichtigt werden. |
|
|
\ No newline at end of file |